0

アプリケーションに対して問題なくビルドおよびリンクしている多数の DLL がありますが、この静的ライブラリが問題を引き起こしています。

そこに存在するのは1つのクラスだけです。クラスは__declspec(dllexport)、lib をビルドするとき、および__declspec(dllimport)アプリケーションにクラスのヘッダーを含めるときに で宣言されます。

MyClass のインスタンスを使用してアプリケーションをビルドしようとすると、次のようになります。

error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall MyClass::~MyClass(void)"
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall MyClass::MyClass(void)"

また、MyClass へのポインターを使用してアプリケーションをビルドしようとすると、同じ未解決の外部情報に加えて、次の 2 つの追加の警告が表示されます。

warning LNK4217: locally defined symbol ??0MyClass@@QAE@XZ (public: __thiscall MyClass::MyClass(void)) imported in function _main
warning LNK4217: locally defined symbol ??1MyClass@@UAE@XZ (public virtual __thiscall MyClass::~MyClass(void))

Web で LNK4217 を検索すると、/M[TD]d? cl.exeスイッチの誤った使用法が示唆されます。Visual Studio ソリューションを再作成し、ソースをドラッグして、正しくプロビジョニングされていることを確認しました。参考までに、Lib とアプリの両方に /MDd があります。

4

0 に答える 0