私は必死にあなたの助けが必要です。
Visual C ++ 2008コンパイラを使用してWindowsでpopplerライブラリ(特にqt4用)を静的にコンパイルしようとしています。このタスクを実行するには、popplerの依存関係として他のライブラリも静的にコンパイルする必要がありました。静的バージョンのpopplerを最終的に生成すると、アプリのビルド時にリンクエラーが発生しました。
error LNK2019: unresolved external symbol "__declspec(dllimport)...
私はすでに新しいインクルードパスを追加し、poppler-qt4.libをリンクしましたが、とにかくエラーが発生します。解決策を探している私はこの議論をstackoverflowで見つけました
Visual C ++ 2008で静的ライブラリをリンクするにはどうすればよいですか?
この情報を見て、ライブラリのインクルードファイル(zlib、libpng、cairoなどのpopplerの依存関係)を調べたところ、さまざまなケースで、静的バージョンを指定するためのプリプロセッサディレクティブがないことがわかりました。 lib。静的ディレクティブの例(openjpeg.h):
#if defined(OPJ_STATIC) || !(defined(_WIN32) || defined(WIN32) || defined(__WIN32__))
# define OPJ_API
# define OPJ_CALLCONV
#else
# define OPJ_CALLCONV __stdcall
# ifdef OPJ_EXPORTS
# define OPJ_API __declspec(dllexport)
# else
# define OPJ_API __declspec(dllimport)
# endif /* OPJ_EXPORTS */
#endif /* !OPJ_STATIC || !WIN32 */
静的ディレクティブのない例(jpeg libのjconfig.h):
#if defined(_WIN32)
#if defined(libjpeg_EXPORTS)
#define JPEG_EXPORT __declspec(dllexport)
#else
#define JPEG_EXPORT __declspec(dllimport)
#endif
#else
#define JPEG_EXPORT
#endif
私の質問は、プロジェクトのプロパティを動的から静的に変更するだけでは不十分なので、このヘッダーも変更する必要がありますか?これが当てはまる場合、静的コンパイルと動的コンパイルを区別するためのこの新しいディレクティブをどこで定義できますか? ?
前もって感謝します。