40

Qt Creator で静的ライブラリを使用する方法を明確に説明しているドキュメントを見つけるのに非常に苦労しています。

Qt Creator を使用してスタティック ライブラリを作成およびコンパイルしました (New=>Projects\C++ Library=>Set type to "Statically Linked Library")。コンパイルして「.aファイル」を吐き出します。

私が遭遇する問題は、ライブラリを使用しようとしたときです。それを使用したい別のプロジェクトがあります (ライブラリ内の #include ファイルなど) が、ライブラリとリンクしたり、ライブラリからファイルを含めたりする適切な方法がわかりません。

4

5 に答える 5

38
LIBS += -L[path to lib] -l[name of lib]

ノート!lib のそのファイル名: lib[nameOfLib].a で、元の部分のみを渡す必要があります -l[nameOfLib]

于 2009-09-01T08:42:23.733 に答える
19

..QT プロジェクト作成者より

  1. 左側のメニューから projectName.pro に移動
  2. タイプ LIBS +=
  3. AddLibraryを右クリック
于 2011-08-11T23:16:38.037 に答える
17

ライブラリを使用するプロジェクトで、LIBS変数がライブラリのパスを指すようにします。
ライブラリからファイルをインクルードするには、ライブラリ フォルダーをINCLUDEPATHに追加し、コード ファイルで通常の #include を実行します。

例えば:

# the binary's .pro  
LIBS += c:/mylibs/math.lib
INCLUDEPATH += c:/mylibs

編集:
-L は、パスがライブラリを検索できるディレクトリであることを qmake に伝えます -l は、パスがファイルであることを伝えますが、以下の観察に注意してください。

qmakeドキュメントから:

この変数には、プロジェクトにリンクされるライブラリのリストが含まれています。Unix の -l (ライブラリ) および -L (ライブラリ パス) フラグを使用すると、qmake は Windows でこれらのライブラリを正しく処理します (つまり、ライブラリのフル パスをリンカーに渡すことを意味します)。これに対する唯一の制限は、qmake が -l lib が存在するディレクトリを見つけるために、ライブラリが存在する必要があることです。

注: Windows では、上記の例のように -l オプションでライブラリを指定すると、バージョン番号が最も大きいライブラリが使用されます。たとえば、libmathlib の代わりに libmath2.lib を使用できる可能性があります。このあいまいさを避けるために 、.lib ファイル名サフィックスを含めて、使用するライブラリを明示的に指定することをお勧めします。

于 2009-09-01T08:37:24.430 に答える
16

バリアント

 LIBS += -L[PATH_TO_LIB_DIR] -l[LIBNAME] 

同じフォルダーに静的ライブラリlibLIBNAME.aと動的ライブラリの両方がある場合は機能しません 。 この場合、QMake v 3.0を搭載した私の Linux では 、動的なものがデフォルトでリンクされています。静的なものとのリンク を強制するには、オプションなしで明示的に指定する必要があります。libLIBNAME.soPATH_TO_LIB_DIR

LIBS += PATH_TO_LIB_DIR/libLIBNAME.a
于 2015-05-14T11:14:28.583 に答える
2

それは...ですか

LIBS += -L"/some path" -l"somename.a"

また

LIBS += -L/somepath -lsomename.a

また

LIBS += -L/somepath -lsomename"

これは可能な限り簡単なはずですが、何らかの理由で検索結果を引き出すのが非常に困難です。なぜなら、ヘルプを求めている人々のフォーラムが非常に多くヒットし、入手できるすべてのヒントに従いましたが、ヘルプが得られなかったからです。 ..

于 2012-03-14T03:12:47.200 に答える