2010-11-30 9 views
0

私のプロジェクトに問題があります。 Qt Creatorで開発しています。プロジェクトに.libファイルを追加する必要があります。だから私は私の.proでこの行を書いた:.libファイルを動的にインクルードする方法

LIBS += "C:\My_Path\My_Project\lib\file.lib" 

これはうまくいきます。私の唯一の問題は、.libファイルへのパス全体を記述する必要があることです。それはグループプロジェクトなので、毎回このファイルへのパスを変更せずに他のコンピュータでコンパイルできる必要があります。

私はのように、多くの構文を試してみました:

LIBS += -L"lib/" -l"file.lib" 

または

LIBS += "lib\file.lib" 

または

LIBS += "file.lib" 

(ルートでの.libファイルを置くとしてプロジェクトに追加しますQt Creator)

Nそのうちの一つは、動作します:/

私もこの1のようなQResourceファイル内の.libファイルが、構文を追加しようとしました:

LIBS += ":/lib/file.lib" 

を.PROファイルで動作するようには思えません。.. 。

私は今アイデアが不足しています:(

ヘルプ私はあなたがデフでうまく動作するべき相対パスを使用して、ライブラリにリンクしたいと思い、あなたの試行から

答えて

1

[OK]を、私は解決策を見つけた:

lib /ディレクトリにはMakefileの(実1、ない.PRO)と同じディレクトリに配置する必要があります。
build-desktop /ディレクトリにlib /ディレクトリをコピーして以来、すべてが相対パスを使って正常に動作しています:)

0

:)をしてくださいault。

このお試しください:それは動作しない場合は、あなたが複数のINCLUDEPATHを設定しようとする場合があります

LIBS += -L$$relative/directory/path -llibname 

を。 :/

+0

私はLIBS + = -L -lの使用に何が問題なのですか? $$ relativeを使うにはどうすればいいですか? –

+0

$$がなくても動作するはずなので、すべてが変ですが、試してみてください。 – Palmik

+0

INCLUDEPATHはライブラリには使用されず、インクルードされたファイルのみが使用されます。 –

1

あなたは

LIBS += -Llib -lfile

または

LIBS += -L./lib -lfileを試してみましたか?

フルパスを使用していない場合は、.libをライブラリ名に追加しないでください。引用符は使用しないでください。パスにスペースが含まれている場合は、$$quote(-L<path name>)

と入力してください。hereと同じように、UNIXスタイルのパスは通常フルパスを指定する必要がある場所でも動作します。 qmakeがあなたのためにそれを記入します。

私はW上の問題はないと私のプロジェクトの一つで

LIBS += $$quote(-L../../lib) -lphraseBox

LIBS += $$quote(-L../../lib) phraseBox.lib

LIBS += ../../lib/phraseBox.lib

を変換しましたindows。プロジェクトファイルをどこかに投稿するか、実際のエラーメッセージを投稿してこれを絞り込むことができます。

+0

まだ私の問題を解決していません。私はまだ "file.libを見つけることができません"を取得します。私が試した究極の行は次のとおりです:LIBS + = -L $$ quote(./lib)-l $$ quote(portaudio_x86)。リンクしたドキュメントでは、.lib拡張子を追加することができます。さらに、ファイル名の末尾にある数字は問題を引き起こす可能性があると言われています。私はそれらを削除しようとしましたが、それは同じです。助けてくれてありがとう:) –

+0

絶対パスで書いても:LIBS + = -L $$引用符(C:\ My_Path \ My_Project \ lib)-l $$引用(portaudio_x86)私は同じエラーが発生します: Windowsでは-Lと-lオプションを使用できますか? –

+0

私の間違いは、$$見積もり(-LC:\ My_Path \ My_Project \ lib)です。私は別の例で私の答えを更新するつもりです。 –

関連する問題