私のVC++ソリューションには、アプリケーション(exe)と静的ライブラリという2つのプロジェクトが含まれています。Visual C++ 2008で静的ライブラリをリンクする方法は?
どちらもコンパイルできますが、リンクできません。私は私が使用する静的ライブラリから各関数の "未解決の外部シンボル"エラーが発生しています。彼らは、次のようになります。
MyApplication.obj:エラーLNK2019:未解決の外部シンボル "(のsockaddr int型、構造体*、INT *)__declspec(dllimportの)int型__cdecl MyStaticLibrary ::受け入れる"
アプリを見つけるのを.libは問題ありません。私は "dllimport"が問題だと思っています。なぜ静的ライブラリを構築しようとしているのですか?アプリケーションとライブラリは、 "マルチスレッドDLL(/ MD)"ではなく、 "マルチスレッド(/ MT)"ランタイムライブラリを使用します。
EDIT:
私は答えのいくつかは右だと思います。 UDTと呼ばれるライブラリが、これはメインのヘッダファイルにしています
#ifdef UDT_EXPORTS
#define UDT_API __declspec(dllexport)
#else
#define UDT_API __declspec(dllimport)
#endif
これは、それが静的ライブラリとして使用されることを意図していなかったということですか?
__declspec(dllimport)の由来はミステリーです - おそらくライブラリの.hファイルですが、どうやってそこに来ましたか?いくつかのマクロはワイルドになった?元気? –