Help me please.
Config: Windows XP SP2, Code Blocks 8.0.2 (C:\Program Files\CodeBlocks), MinGW was inside CodeBlocks setup package codeblocks-8.02mingw-setup.exe but I will not use it because MinGW don't like spaces, especially windres.exe (C:\Program Files\CodeBlocks\MinGW), wxWidgets 2.8.7 been setup from wxMSW-2.8.7-Setup.exe (C:\Program Files\wxWidgets-2.8.7) I wonder why wxMSW-2.8.7-Setup.exe haven't added environment variable %WXWIN%, which I've done myself, Microsoft Visual C++ 2008 Express Edition (C:\Program Files\Microsoft Visual Studio 9.0), no wxPack
Building wxWidgets. Start > Programs> Visual C++ 9.0 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt.
cd %WXWIN%\build\msw
nmake -f makefile.vc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1
nmake -f makefile.vc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1
Trying clean
nmake -f makefile.vc clean USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1
gives some error
I'm starting to hate bakefile.
I'm creating my first wxWidgets project using wizard:
1) Next
2) wxWidgets 2.8.x
3) Project Title: wxTest, Folder: C:\Program Files\CodeBlocks\Projects
4) Next
5) wxSmith and Dialog Based
6) $(#wx), where #wx is CB's global variable base=C:\Program Files\wxWidgets-2.8.7, include=C:\Program Files\wxWidgets-2.8.7\include, lib=C:\Program Files\wxWidgets-2.8.7\lib
7) Microsoft Visual C++ 2005/2008, Create Debug and Release configurations
Use wxWidgets DLL, wxWidgets is built as monolithic library, Enable unicode, Configure Advanced Options
9) unchecked "Use __WXDEBUG__ and Debug wxWidgets lib" (GCC Only), Debug Target "GUI Mode Application", Release Target "GUI Mode Application"
Building debug gives this error (with full command line report):
-------------- Build: Debug in wxTest ---------------
cl.exe /nologo /DWIN32 /D__WIN32__ /D__WXMSW__ /DWXUSINGDLL /DwxUSE_UNICODE /D_WINDOWS /TP /Gd /GF /EHsc /D_CRT_SECURE_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t /D_VC80_UPGRADE=0x0600 /W3 /Zi /D_DEBUG /D__WXDEBUG__ /MDd /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\contrib\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswud" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c wxTestApp.cpp /FoDebug\wxTestApp.obj
wxTestApp.cpp
cl.exe /nologo /DWIN32 /D__WIN32__ /D__WXMSW__ /DWXUSINGDLL /DwxUSE_UNICODE /D_WINDOWS /TP /Gd /GF /EHsc /D_CRT_SECURE_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t /D_VC80_UPGRADE=0x0600 /W3 /Zi /D_DEBUG /D__WXDEBUG__ /MDd /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\contrib\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswud" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c wxTestMain.cpp /FoDebug\wxTestMain.obj
wxTestMain.cpp
rc.exe /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswud" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" -foDebug\resource.res resource.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
link.exe /nologo /subsystem:windows /LIBPATH:"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll" /LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib" /LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\lib" /out:Debug\wxTest.exe msvcrtd.lib wxmsw28u.lib winmm.lib rpcrt4.lib Debug\wxTestApp.obj Debug\wxTestMain.obj Debug\resource.res /DEBUG /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrt.lib /INCREMENTAL:NO /SUBSYSTEM:WINDOWS
wxTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsole::OnAssertFailure(wchar_t const *,int,wchar_t const *,wchar_t const *,wchar_t const *)" (?OnAssertFailure@wxAppConsole@@UAEXPB_WH000@Z)
wxTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsole::OnAssert(wchar_t const *,int,wchar_t const *,wchar_t const *)" (?OnAssert@wxAppConsole@@UAEXPB_WH00@Z)
Debug\wxTest.exe : fatal error LNK1120: 2 unresolved externals
Process terminated with status 1120 (0 minutes, 6 seconds)
3 errors, 0 warnings
after changing
<Add option="/Zc:wchar_t" />
to
<Add option="/Zc:wchar_t-" />
-------------- Build: Debug in wxTest ---------------
cl.exe /nologo /DWIN32 /D__WIN32__ /D__WXMSW__ /DWXUSINGDLL /DwxUSE_UNICODE /D_WINDOWS /TP /Gd /GF /EHsc /D_CRT_SECURE_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t- /D_VC80_UPGRADE=0x0600 /W3 /Zi /D_DEBUG /D__WXDEBUG__ /MDd /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\contrib\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswud" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c wxTestApp.cpp /FoDebug\wxTestApp.obj
wxTestApp.cpp
cl.exe /nologo /DWIN32 /D__WIN32__ /D__WXMSW__ /DWXUSINGDLL /DwxUSE_UNICODE /D_WINDOWS /TP /Gd /GF /EHsc /D_CRT_SECURE_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t- /D_VC80_UPGRADE=0x0600 /W3 /Zi /D_DEBUG /D__WXDEBUG__ /MDd /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\contrib\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswud" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c wxTestMain.cpp /FoDebug\wxTestMain.obj
wxTestMain.cpp
rc.exe /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswud" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" -foDebug\resource.res resource.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
link.exe /nologo /subsystem:windows /LIBPATH:"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll" /LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib" /LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\lib" /out:Debug\wxTest.exe msvcrtd.lib wxmsw28u.lib winmm.lib rpcrt4.lib Debug\wxTestApp.obj Debug\wxTestMain.obj Debug\resource.res /DEBUG /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrt.lib /INCREMENTAL:NO /SUBSYSTEM:WINDOWS
wxTestApp.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall wxApp::Initialize(int &,unsigned short * *)" (?Initialize@wxApp@@UAE_NAAHPAPAG@Z)
wxTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsole::OnAssertFailure(unsigned short const *,int,unsigned short const *,unsigned short const *,unsigned short const *)" (?OnAssertFailure@wxAppConsole@@UAEXPBGH000@Z)
wxTestApp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsole::OnAssert(unsigned short const *,int,unsigned short const *,unsigned short const *)" (?OnAssert@wxAppConsole@@UAEXPBGH00@Z)
wxTestMain.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class wxString & __thiscall wxString::operator<<(unsigned short const *)" (__imp_??6wxString@@QAEAAV0@PBG@Z) referenced in function "class wxString __cdecl wxbuildinfo(enum wxbuildinfoformat)" (?wxbuildinfo@@YA?AVwxString@@W4wxbuildinfoformat@@@Z)
wxTestMain.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall wxString::wxString(unsigned short const *)" (__imp_??0wxString@@QAE@PBG@Z) referenced in function "class wxString __cdecl wxbuildinfo(enum wxbuildinfoformat)" (?wxbuildinfo@@YA?AVwxString@@W4wxbuildinfoformat@@@Z)
Debug\wxTest.exe : fatal error LNK1120: 5 unresolved externals
Process terminated with status 1120 (0 minutes, 5 seconds)
6 errors, 0 warnings
my wxTest.cbp
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="wxTest" />
<Option pch_mode="2" />
<Option compiler="msvc8" />
<Build>
<Target title="Debug">
<Option output="Debug\wxTest" prefix_auto="1" extension_auto="1" />
<Option object_output="Debug\" />
<Option type="0" />
<Option compiler="msvc8" />
<Option projectLinkerOptionsRelation="2" />
<Compiler>
<Add option="/Zi" />
<Add option="/D_DEBUG" />
<Add option="/D__WXDEBUG__" />
<Add option="/MDd" />
<Add directory="$(#wx)\lib\vc_dll\mswud" />
</Compiler>
<ResourceCompiler>
<Add directory="$(#wx)\lib\vc_dll\mswud" />
</ResourceCompiler>
<Linker>
<Add option="/DEBUG" />
<Add option="/NODEFAULTLIB:libcmtd.lib" />
<Add option="/NODEFAULTLIB:msvcrt.lib" />
<Add library="msvcrtd.lib" />
<Add library="wxmsw28u.lib" />
<Add directory="$(#wx)\lib\vc_dll" />
</Linker>
<ExtraCommands>
<Add after='mt.exe /nologo /manifest "Debug\wxTest.exe.manifest" /outputresource:"Debug\wxTest.exe";1' />
</ExtraCommands>
</Target>
<Target title="Release">
<Option output="Release\wxTest" prefix_auto="1" extension_auto="1" />
<Option object_output="Release\" />
<Option type="0" />
<Option compiler="msvc8" />
<Option projectLinkerOptionsRelation="2" />
<Compiler>
<Add option="/Ox" />
<Add option="/DNDEBUG" />
<Add option="/MD" />
<Add option="/O2" />
<Add option="/Ob1" />
<Add directory="$(#wx)\lib\vc_dll\mswu" />
</Compiler>
<ResourceCompiler>
<Add directory="$(#wx)\lib\vc_dll\mswu" />
</ResourceCompiler>
<Linker>
<Add option="/NODEFAULTLIB:libcmt.lib" />
<Add library="msvcrt.lib" />
<Add library="wxmsw28u.lib" />
<Add directory="$(#wx)\lib\vc_dll" />
</Linker>
<ExtraCommands>
<Add after='mt.exe /nologo /manifest "Release\wxTest.exe.manifest" /outputresource:"Release\wxTest.exe";1' />
</ExtraCommands>
</Target>
</Build>
<Compiler>
<Add option="/DWIN32" />
<Add option="/D__WIN32__" />
<Add option="/D__WXMSW__" />
<Add option="/DWXUSINGDLL" />
<Add option="/DwxUSE_UNICODE" />
<Add option="/D_WINDOWS" />
<Add option="/TP" />
<Add option="/Gd" />
<Add option="/GF" />
<Add option="/EHsc" />
<Add option="/D_CRT_SECURE_DEPRECATE" />
<Add option="/D_CRT_NONSTDC_NO_DEPRECATE" />
<Add option="/Zc:wchar_t" />
<Add option="/D_VC80_UPGRADE=0x0600" />
<Add option="/W3" />
<Add directory="$(#wx)\include" />
<Add directory="$(#wx)\contrib\include" />
</Compiler>
<ResourceCompiler>
<Add directory="$(#wx)\include" />
</ResourceCompiler>
<Linker>
<Add option="/INCREMENTAL:NO" />
<Add option="/SUBSYSTEM:WINDOWS" />
<Add library="winmm.lib" />
<Add library="rpcrt4.lib" />
</Linker>
<Unit filename="resource.rc">
<Option compilerVar="WINDRES" />
</Unit>
<Unit filename="wxTestApp.cpp" />
<Unit filename="wxTestApp.h" />
<Unit filename="wxTestMain.cpp" />
<Unit filename="wxTestMain.h" />
<Unit filename="wxsmith\wxTestdialog.wxs" />
<Extensions>
<code_completion />
<envvars />
<debugger />
<wxsmith version="1">
<gui name="wxWidgets" src="wxTestApp.cpp" main="wxTestDialog" init_handlers="necessary" language="CPP" />
<resources>
<wxDialog wxs="wxsmith/wxTestdialog.wxs" src="wxTestMain.cpp" hdr="wxTestMain.h" name="wxTestDialog" language="CPP" />
</resources>
</wxsmith>
</Extensions>
</Project>
</CodeBlocks_project_file>
release version builds fine:
-------------- Build: Release in wxTest ---------------
cl.exe /nologo /DWIN32 /D__WIN32__ /D__WXMSW__ /DWXUSINGDLL /DwxUSE_UNICODE /D_WINDOWS /TP /Gd /GF /EHsc /D_CRT_SECURE_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t /D_VC80_UPGRADE=0x0600 /W3 /Ox /DNDEBUG /MD /O2 /Ob1 /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\contrib\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswu" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c wxTestApp.cpp /FoRelease\wxTestApp.obj
wxTestApp.cpp
cl.exe /nologo /DWIN32 /D__WIN32__ /D__WXMSW__ /DWXUSINGDLL /DwxUSE_UNICODE /D_WINDOWS /TP /Gd /GF /EHsc /D_CRT_SECURE_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t /D_VC80_UPGRADE=0x0600 /W3 /Ox /DNDEBUG /MD /O2 /Ob1 /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\contrib\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswu" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" /c wxTestMain.cpp /FoRelease\wxTestMain.obj
wxTestMain.cpp
rc.exe /I"C:\Program Files\wxWidgets-2.8.7\include" /I"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll\mswu" /I"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include" /I"C:\Program Files\Microsoft Visual Studio 9.0\VC\include" -foRelease\resource.res resource.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
link.exe /nologo /subsystem:windows /LIBPATH:"C:\Program Files\wxWidgets-2.8.7\lib\vc_dll" /LIBPATH:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib" /LIBPATH:"C:\Program Files\Microsoft Visual Studio 9.0\VC\lib" /out:Release\wxTest.exe msvcrt.lib wxmsw28u.lib winmm.lib rpcrt4.lib Release\wxTestApp.obj Release\wxTestMain.obj Release\resource.res /NODEFAULTLIB:libcmt.lib /INCREMENTAL:NO /SUBSYSTEM:WINDOWS
Output size is 61.00 KB
Running target post-build steps
mt.exe /nologo /manifest "Release\wxTest.exe.manifest" /outputresource:"Release\wxTest.exe";1
Process terminated with status 0 (0 minutes, 4 seconds)
0 errors, 0 warnings