4

プロジェクト用のライブラリを作成しようとしています。(Qt5、Qt Creator、VS2010 コンパイラ)

どのように機能するかを確認するために、最小限のテストサンプルから始めました。

1-メソッドを持つクラスを含むライブラリを作成しました

2-コンパイルしてDllとLibファイルを取得

3-メインアプリケーションで、このライブラリとそのパスを.proとテスト済みライブラリに正常に追加します。

今、私は DLL を取り除き、lib ファイルをスタティック ライブラリとして使用したいと考えています。

だから私は私のライブラリ.proファイルにこの行を追加しました

CONFIG+=staticlib

今、私はコンパイル後にlibファイルを取得しますが、プロジェクトで使用できず、未解決の外部シンボル...エラーが発生します

CONFIG+=staticlib を削除すると、再び機能します! しかし、静的ではありません。

これらは、ライブラリをロード/リンクするためにメインプロジェクトの.proファイルに追加した行です

INCLUDEPATH +="G:/TestLib/testLib"
LIBS +=-l"G:/Build/debug/testLib"

問題は、Qt (非商用ライセンス) で独自の静的ライブラリを使用することは可能ですか?

はいの場合、私のアプローチの何が問題になっていますか?

静的ライブラリを指定するには、LIBS+=... で何かを変更する必要がありますか?

この記事を読みましたが、コードに問題はないようです。

何か助けてください。

EDIT : 問題解決
問題は、静的ライブラリに Q_DECL_EXPORT と Q_DECL_IMPORT が必要ないことでした! その大ざっぱな幻想的な記事では明示的に言及されていません。

4

1 に答える 1

3

問題が解決しました

問題は、静的ライブラリを必要Q_DECL_EXPORTとしないことでした! Q_DECL_IMPORTその大ざっぱな幻想的な記事では明示的に言及されていません。

Q_DECL_EXPORTおよびQ_DECL_IMPORT動的ライブラリに必要です。

于 2013-03-27T19:45:48.847 に答える