Windows 10에서 Visual Studio Community 2015를 사용하여 최소 wxWidgets 샘플을 실행하려고합니다. wxWidgets 버전은 3.1.0입니다.
다음 명령을 사용하여 wxWidgets를 컴파일했습니다.
nmake -f makefile.vc SHARED=1 UNICODE=1 MONOLITHIC=1 BUILD=release
위에서 언급 한 명령으로 wxWidgets의 컴파일이 성공했습니다.
최소한의 wxWidgets에 예는 잘 컴파일하지만 난에 다음 링크 오류 얻을 릴리스 (아직 havent 한 시도 디버그) 버전 :
error LNK2001: unresolved external symbol "void (__cdecl* wxTheAssertHandler)(class wxString const &,int,class wxString const &,class wxString const &,class wxString const &)" (?wxTheAssertHandler@@3P6AXABVwxString@@H000@ZA)
1>Source.obj : error LNK2001: unresolved external symbol "class wxEventTypeTag<class wxCommandEvent> const wxEVT_MENU" (?wxEVT_MENU@@3V?$wxEventTypeTag@VwxCommandEvent@@@@B)
1>Source.obj : error LNK2001: unresolved external symbol "protected: static class wxAppConsole * (__cdecl* wxAppConsoleBase::ms_appInitFn)(void)" (?ms_appInitFn@wxAppConsoleBase@@1P6APAVwxAppConsole@@XZA)
1>Source.obj : error LNK2001: unresolved external symbol "char const * const wxFrameNameStr" (?wxFrameNameStr@@3QBDB)
1>Source.obj : error LNK2001: unresolved external symbol "protected: static class wxAppConsole * wxAppConsoleBase::ms_appInstance" (?ms_appInstance@wxAppConsoleBase@@1PAVwxAppConsole@@A)
1>Source.obj : error LNK2001: unresolved external symbol "class wxMBConv * wxConvLibcPtr" (?wxConvLibcPtr@@3PAVwxMBConv@@A)
1>Source.obj : error LNK2001: unresolved external symbol "char const * const wxLOG_COMPONENT" (?wxLOG_COMPONENT@@3PBDB)
1>Source.obj : error LNK2001: unresolved external symbol "public: static unsigned int const wxString::npos" (?npos@wxString@@2IB)
1>Source.obj : error LNK2001: unresolved external symbol "class wxSize const wxDefaultSize" (?wxDefaultSize@@3VwxSize@@B)
1>Source.obj : error LNK2001: unresolved external symbol "bool wxTrapInAssert" (?wxTrapInAssert@@3_NA)
1>Source.obj : error LNK2001: unresolved external symbol "wchar_t const * const wxEmptyString" (?wxEmptyString@@3PB_WB)
1>Source.obj : error LNK2001: unresolved external symbol "private: static bool wxLog::ms_doLog" (?ms_doLog@wxLog@@0_NA)
1>Source.obj : error LNK2001: unresolved external symbol "char const * const wxStatusLineNameStr" (?wxStatusLineNameStr@@3QBDB)
1>Source.obj : error LNK2001: unresolved external symbol "private: static unsigned long wxThread::ms_idMainThread" (?ms_idMainThread@wxThread@@0KA)
1>Source.obj : error LNK2001: unresolved external symbol "class wxPoint const wxDefaultPosition" (?wxDefaultPosition@@3VwxPoint@@B)
다음과 같은 전 처리기 정의가 있습니다.WIN32;_UNICODE;__WXMSW__;UNICODE
전체 링커 플래그 : /OUT:"C:\Users\gb\documents\visual studio 2015\Projects\wxWidgetsDeneme\Release\wxWidgetsDeneme.exe" /MANIFEST /LTCG:incremental /NXCOMPAT /PDB:"C:\Users\gb\documents\visual studio 2015\Projects\wxWidgetsDeneme\Release\wxWidgetsDeneme.pdb" /DYNAMICBASE "wxmsw31u.lib" "wxmsw31u_gl.lib" "wxexpat.lib" "wxjpeg.lib" "wxpng.lib" "wxscintilla.lib" "wxtiff.lib" "wxzlib.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MACHINE:X86 /OPT:REF /SAFESEH /INCREMENTAL:NO /PGD:"C:\Users\gb\documents\visual studio 2015\Projects\wxWidgetsDeneme\Release\wxWidgetsDeneme.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\wxWidgetsDeneme.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:\Users\gb\Downloads\wxWidgets-3.1.0\lib\vc_dll" /TLBID:1
어떤 아이디어라도 감사하겠습니다.
이렇게 간단하다고 생각하지 않았을 것입니다. 전 처리기 정의 만 누락되었습니다. WXUSINGDLL
설명서에서 다음과 같이 언급합니다. WXUSINGDLL : 정적 빌드 대신 DLL을 사용하여 컴파일 하고 nmake -f makefile.vc SHARED=1 ...
.
저는 지금 궁금합니다. 왜 wxWidgets가 전 처리기 정의에서 누락 gcc
되었더라도 아무 문제없이 실행됩니다 WXUSINGDLL
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다