古い 2.8.12 から wxWidgets 2.9.4 にアップグレードしようとしていて、問題が発生しました。コマンドラインからエラーなしでコンパイルしましたが、以前のバージョンで問題なく動作していたプログラムでそれらを使用しようとすると、未解決の外部が発生します。むき出しのフレームと TextCtrl オブジェクトだけに切り詰めましたが、これはまだ実行されています (現時点では、サンプル コードの 1 つと基本的に同じです)。
次のコマンドを試して、静的ライブラリを構築しました。
- nmake -f makefile.vc 共有=0 ビルド=リリース + nmake -f makefile.vc 共有=0 ビルド=デバッグ
- nmake -f makefile.vc 共有=0 モノリシック=0 ビルド=リリース + nmake -f makefile.vc 共有=0 モノリシック=0 ビルド=デバッグ
- nmake -f makefile.vc SHARED=0 BUILD=リリース UNICODE=0 + nmake -f makefile.vc SHARED=0 BUILD=debug UNICODE=0
- nmake -f makefile.vc SHARED=0 BUILD=リリース UNICODE=0 MONOLITHIC=0 + nmake -f makefile.vc SHARED=0 BUILD=debug UNICODE=0 MONOLITHIC=0
推奨されるユニコードとサポートされなくなった非ユニコードの両方でそれらを使用しようとしたことに注意してください(それに応じて構成プロパティ->一般のプロジェクトプロパティを変更しました)。また、wxWidgets マニュアルで推奨されているように、マルチスレッド DLL の /MD および /MDd リンクを使用しました。
編集: \MT と \MTd も使用してみましたが、同じ効果です。
上記のすべてから、アプリケーションをコンパイルするときに、以下にリストされている同じリンカ エラーが発生します。アイデアが尽きてしまったのでどうすればいいか教えてください...
さらに、最後の手段として、../build/msw フォルダーから変換された MSVS プロジェクトを使用して全体をビルドしましたが、同じ結果が得られました。
デバッグコンパイル
1>hworld.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall wxApp::Initialize(int &,unsigned short * *)" (?Initialize@wxApp@@UAE_NAAHPAPAG@Z)
1>hworld.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsoleBase::OnAssertFailure(unsigned short const *,int,unsigned short const *,unsigned short const *,unsigned short const *)" (?OnAssertFailure@wxAppConsoleBase@@UAEXPBGH000@Z)
1>hworld.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsoleBase::OnAssert(unsigned short const *,int,unsigned short const *,unsigned short const *)" (?OnAssert@wxAppConsoleBase@@UAEXPBGH00@Z)
1>hworld.obj : error LNK2001: unresolved external symbol "unsigned short const * const wxEmptyString" (?wxEmptyString@@3PBGB)
1>hworld.obj : error LNK2019: unresolved external symbol "private: static struct wxString::SubstrBufFromType<class wxScopedCharTypeBuffer<unsigned short> > __cdecl wxString::ConvertStr(char const *,unsigned int,class wxMBConv const &)" (?ConvertStr@wxString@@CA?AU?$SubstrBufFromType@V?$wxScopedCharTypeBuffer@G@@@1@PBDIABVwxMBConv@@@Z) referenced in function "private: static class wxScopedCharTypeBuffer<unsigned short> __cdecl wxString::ImplStr(char const *,class wxMBConv const &)" (?ImplStr@wxString@@CA?AV?$wxScopedCharTypeBuffer@G@@PBDABVwxMBConv@@@Z)
1>hworld.obj : error LNK2019: unresolved external symbol "void __cdecl wxOnAssert(char const *,int,char const *,char const *,unsigned short const *)" (?wxOnAssert@@YAXPBDH00PBG@Z) referenced in function "public: void __thiscall wxControlContainerBase::SetContainerWindow(class wxWindow *)" (?SetContainerWindow@wxControlContainerBase@@QAEXPAVwxWindow@@@Z)
1>wxpngd.lib(wxpng_pngread.obj) : error LNK2019: unresolved external symbol _inflateInit_ referenced in function _png_create_read_struct_2
1>wxpngd.lib(wxpng_pngread.obj) : error LNK2019: unresolved external symbol _inflate referenced in function _png_read_row
1>wxpngd.lib(wxpng_pngrutil.obj) : error LNK2001: unresolved external symbol _inflate
1>wxpngd.lib(wxpng_pngread.obj) : error LNK2019: unresolved external symbol _inflateEnd referenced in function _png_read_destroy
1>wxpngd.lib(wxpng_png.obj) : error LNK2019: unresolved external symbol _crc32 referenced in function _png_reset_crc
1>wxpngd.lib(wxpng_png.obj) : error LNK2019: unresolved external symbol _inflateReset referenced in function _png_reset_zstream
1>wxpngd.lib(wxpng_pngrutil.obj) : error LNK2001: unresolved external symbol _inflateReset
1>wxpngd.lib(wxpng_pngwrite.obj) : error LNK2019: unresolved external symbol _deflate referenced in function _png_write_flush
1>wxpngd.lib(wxpng_pngwutil.obj) : error LNK2001: unresolved external symbol _deflate
1>wxpngd.lib(wxpng_pngwrite.obj) : error LNK2019: unresolved external symbol _deflateEnd referenced in function _png_write_destroy
1>wxpngd.lib(wxpng_pngwutil.obj) : error LNK2001: unresolved external symbol _deflateEnd
1>wxpngd.lib(wxpng_pngwutil.obj) : error LNK2019: unresolved external symbol _deflateInit2_ referenced in function _png_zlib_claim
1>wxpngd.lib(wxpng_pngwutil.obj) : error LNK2019: unresolved external symbol _deflateReset referenced in function _png_zlib_release
リリースコンパイル
1>wxpng.lib(wxpng_png.obj): エラー LNK2001: 未解決の外部シンボル _crc32 1>wxpng.lib(wxpng_png.obj): エラー LNK2001: 未解決の外部シンボル _inflateReset 1>wxpng.lib(wxpng_pngrutil.obj): エラー LNK2001:未解決の外部シンボル _inflateReset 1>wxpng.lib(wxpng_pngread.obj): エラー LNK2001: 未解決の外部シンボルinflateInit 1>wxpng.lib(wxpng_pngread.obj): エラー LNK2001: 未解決の外部シンボル _inflate 1>wxpng.lib(wxpng_pngrutil.obj): エラー LNK2001: 未解決の外部シンボル _inflate 1>wxpng.lib(wxpng_pngread.obj): エラー LNK2001:未解決の外部シンボル _inflateEnd 1>wxpng.lib(wxpng_pngwrite.obj) : エラー LNK2001: 未解決の外部シンボル _deflate 1>wxpng.lib(wxpng_pngwutil.obj) : エラー LNK2001: 未解決の外部シンボル _deflate 1>wxpng.lib(wxpng_pngwrite.obj) : エラー LNK2001: 未解決の外部シンボル _deflateEnd 1>wxpng.lib(wxpng_pngwutil.obj) : エラー LNK2001: 未解決の外部シンボル _deflateEnd 1>wxpng.lib(wxpng_pngwutil.obj) : エラー LNK2001: 未解決の外部シンボルdeflateInit2 1>wxpng.lib(wxpng_pngwutil.obj): エラー LNK2001: 未解決の外部シンボル _deflateReset 1>MSVCRT.lib(crtexe.obj): エラー LNK2001: 未解決の外部シンボル _main