0

Windowsのダイナミックライブラリに問題があります。Qt /C++を使用してLinuxで共有ウィジェットライブラリを作成しました。すべて問題なく、すべてのアプリケーションをライブラリにリンクできます。しかし、Windowsでは同じコードがコンパイルされますが、どのアプリケーションもそれを使用できません。undefined reference to ...すべてライブラリに実装されているタイプのリンカーエラーがたくさん発生しています。

Windowsでは、コードのシンボルテーブルがデフォルトでバイナリにエクスポートされていないことがわかりました。最終的なdllに表示する関数を指定する必要があります。しかし、私はそれを行う方法を見つけることができません。

この指示に従って、Q_DECL_EXPORTすべてのクラス宣言に追加します。しかし、それは私にはうまくいきません。

4

1 に答える 1

2

MYSHAREDLIB_EXPORTではなく、クラス宣言に追加する必要がありますQ_DECL_EXPORT。また、あなたが提供したリンクから、それに応じて定義します。

を追加するQ_DECL_EXPORTと、クラスが別のライブラリにエクスポートされることを期待せずに、ヘッダーを含むすべてのモジュールでそのクラスのコードを生成するようにコンパイラーに指示します。

于 2012-05-24T14:20:03.743 に答える