Author Topic: Problems with creating a wxwidgets Project  (Read 20539 times)

Offline uelkfr

  • Single posting newcomer
  • *
  • Posts: 4
Re: Problems with creating a wxwidgets Project
« Reply #15 on: June 15, 2008, 02:35:24 pm »
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
8) 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 &quot;Debug\wxTest.exe.manifest&quot; /outputresource:&quot;Debug\wxTest.exe&quot;;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 &quot;Release\wxTest.exe.manifest&quot; /outputresource:&quot;Release\wxTest.exe&quot;;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
« Last Edit: June 15, 2008, 03:12:52 pm by uelkfr »

Offline uelkfr

  • Single posting newcomer
  • *
  • Posts: 4
Re: Problems with creating a wxwidgets Project
« Reply #16 on: June 15, 2008, 03:17:38 pm »
Yay!!! at last, it works! thank you all
Project > Build Options... > Linker Settings > Link Libraries: i have changed wxmsw28u.lib to wxmsw28ud.lib and now it works fine