2

うまくいけば、誰かがここで私を助けてくれます。私は Visual Studio 2005 を使用しており、wxWidgets に静的にリンクする静的ライブラリを作成しています。私は持っている:

  1. ガイドに従って静的にコンパイルされたwxWidgets
  2. 「追加のライブラリディレクトリ」プロパティにlibディレクトリを含めました
  3. 「追加の依存関係」プロパティにすべての wxWidget ライブラリを追加しました
  4. 「Link Library Dependencies」プロパティを「Yes」に設定します
  5. C++ 最適化を無効に設定します。

これらの手順のいくつかを実行する必要がないことはわかっています。「念のため」の合理的な理由で実行しました。

私のライブラリは問題なくコンパイルされますが、私の静的ライブラリを含むテスト アプリケーションは、リンク中に「wxbase28.lib」(私が含めたもの) を見つけることができないと文句を言います。

wxWidgets を完全に抽象化したので、ライブラリのパブリック API には wxWidget 関連について何も言及されていないことに注意してください。テスト アプリは、wxWidgets が存在することを認識してはなりません。

私の小さなライブラリが 51 MB を超えたので、ライブラリがリンクされているような気がします... では、テスト アプリケーションが wxWidgets ライブラリが見つからないと文句を言うのはなぜですか?

ありがとうございました

4

2 に答える 2

2

依存ライブラリをプルするのはビルドプロセスのリンクステップです。静的ライブラリをビルドする場合、リンクステップがないため、再帰的な依存関係はプルされません。

したがって、最終的なアプリケーションをリンクするには、静的ライブラリとwx静的ライブラリの両方が存在する必要があります。

于 2009-12-16T19:17:51.503 に答える
0

明白なことを提案するのは嫌いですが、wxbase28.lib はテスト アプリケーションの依存関係のリストに記載されていますか?

于 2009-12-16T18:51:05.900 に答える