SUBJ: Code::Blocks v.16.01 (gcc492) + wxWidgets v.3.1.0 (gcc510TDM)
Hi!
sorry if lamed
my first experiment with wxWidgets ( and second with CB ;) )
so, in order:
1.
all of wxWidgets-3.1.0.7z (included wxWidgets-3.1.0-headers.7z, of course) and wxMSW-3.1.0_gcc510TDM_Dev.7z (included wxMSW-3.1.0_gcc510TDM_ReleaseDLL.7z, of course) extracted (D:\DEVELOPE\wxWidgets) and copied (NTFS-link) to CB-dir (for sure)
config CB:
Environment settings -> HeaderFixup
(in file default.conf) created copy of wxWidgets_2_8_8 like wxWidgets_3_1_0 (by text-editor)
Q:
Need the wxWidgets_3_1_0 (copy wxWidgets_2_8_8 in default.conf) any correction ???
2.
created new project (just sample):
checked wxWidgets 3.0.x (later vers not included in these options)
…
GUI Builder: wxSmith
AppType: Dialog Based
location: D:\DEVELOPE\wxWidgets
libs set: +use wxWidgets DLL
+Unicode
Global Variable Editor:
default
wx
base: D:\DEVELOPE\wxWidgets
lib: D:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll
… no more
got 2 warnings (matching Debug\Release conf can't be found in wxWidgets dir)
3.
Project -> options -> build -> linker [edit for Debug(of course, with d, like below)\Release]:
libwxmsw30ud_core.a - libwxmsw31ud_core.a
libwxbase30ud.a - libwxbase31ud.a
libwxpngd.a
libwxzlibd.a
Q:
Where can I config these build\linker (text "libwxmsw30ud_core.a" in AppData\codeblocks\ and CodeBlocks-dir exactly not founded) pred (for future), m/b need create some script ???
4.
Project -> options -> build -> linker (search dirs: comp,linker,res - for Debug\Release):
D:\DEVELOPE\wxWidgets\lib\gcc_dll\mswud
+ d:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll
NB: all sources (_dialog.wxs included) NOT changed (Welcom…) — just try (as a demo)
…and off all my Compiler Flags (added to conf by defaul in past)
try to build & run:
||=== Build: Debug in 1 (compiler: GNU GCC Compiler) ===|
D:\DEVELOPE\wxWidgets\include\wx\platform.h|136|fatal error: wx/setup.h: No such file or directory|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
platform.h:
/*
Include wx/setup.h for the Unix platform defines generated by configure and
the library compilation options
Note that it must be included before defining hardware symbols below as they
could be already defined by configure but it must be included after defining
the compiler macros above as msvc/wx/setup.h relies on them under Windows.
*/
#include "wx/setup.h"
So, try platform.h:
//#include "wx/setup.h"
#include "wx/msw/setup.h"
Build log:
-------------- Build: Debug in 1 (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -ID:\DEVELOPE\wxWidgets\include -ID:\DEVELOPE\wxWidgets\lib\gcc_dll\mswud -Id:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll -c d:\DEVELOPE\CodeBlocks\1\_App.cpp -o obj\Debug\_App.o
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -ID:\DEVELOPE\wxWidgets\include -ID:\DEVELOPE\wxWidgets\lib\gcc_dll\mswud -Id:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll -c d:\DEVELOPE\CodeBlocks\1\_Main.cpp -o obj\Debug\_Main.o
windres.exe -ID:\DEVELOPE\wxWidgets\include -ID:\DEVELOPE\wxWidgets\lib\gcc_dll\mswud -Id:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll -J rc -O coff -i d:\DEVELOPE\CODEBL~1\1\resource.rc -o obj\Debug\resource.res
mingw32-g++.exe -LD:\DEVELOPE\wxWidgets\lib\gcc_dll -Ld:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll -o bin\Debug\1.exe obj\Debug\_App.o obj\Debug\_Main.o obj\Debug\resource.res -mthreads -lwxmsw31ud_core -lwxbase31ud -lwxpngd -lwxzlibd -mwindows
Output file is bin\Debug\1.exe with size 1.40 MB
Process terminated with status 0 (0 minute(s), 19 second(s))
0 error(s), 0 warning(s) (0 minute(s), 19 second(s))
-------------- Run: Debug in 1 (compiler: GNU GCC Compiler)---------------
Checking for existence: d:\DEVELOPE\CodeBlocks\1\bin\Debug\1.exe
Executing: "d:\DEVELOPE\CodeBlocks\1\bin\Debug\1.exe" (in d:\DEVELOPE\CodeBlocks\1\.)
Process terminated with status -1073741819 (0 minute(s), 0 second(s))
5.
try: Debug\1.exe can't start (*.dll not found)
now copy (NTFS-link) wxbase310ud_gcc510TDM.dll & wxmsw310ud_core_gcc510TDM.dll
to bin\Debug\
…useless (terminated with status -1073741819)
6.
start debugger with modificate (insignificant) code
got "SIGSEGV, Segmentation fault":
Active debugger config: GDB/CDB debugger:Default
Building to ensure sources are up-to-date
Selecting target:
Debug
Adding source dir: d:\DEVELOPE\CodeBlocks\1\
Adding source dir: d:\DEVELOPE\CodeBlocks\1\
Adding file: d:\DEVELOPE\CodeBlocks\1\bin\Debug\1.exe
Changing directory to: d:/DEVELOPE/CodeBlocks/1/.
Set variable: PATH=.;D:\DEVELOPE\wxWidgets\lib\gcc_dll;d:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll;d:\DEVELOPE\CodeBlocks\MinGW\bin;d:\DEVELOPE\CodeBlocks\MinGW;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;D:\AutoDesk\Maya8.5\bin;C:\Program Files\FreeArc\PowerPack\bin;C:\Program Files\Universal Extractor;C:\Program Files\Universal Extractor\bin;C:\Program Files\QuickTime\QTSystem;C:\Program Files\Common Files\iZotope\Runtimes;C:\Program Files\Skype\Phone;d:\GameS\Valve\SSDK\Ultimate SSDK v2\Source Engine 2009\ep2\..\bin;C:\Program Files\FreeArc\bin
Starting debugger: d:\DEVELOPE\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname -quiet -args d:/DEVELOPE/CodeBlocks/1/bin/Debug/1.exe
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Debugger name and version: GNU gdb (GDB) 7.6.1
Child process PID: 3840
Program received signal SIGSEGV, Segmentation fault.
In ntdll!RtlSetUserValueHeap () (C:\WINDOWS\system32\ntdll.dll)
110 ../../src/common/appcmn.cpp: No such file or directory.
#15 0x006f1388 in wxAppBase::Initialize (this=0x663bcf8, argcOrig=@0xb1c55c: 1, argvOrig=0x6629310) at ../../src/common/appcmn.cpp:110
Program received signal SIGSEGV, Segmentation fault.
In ntdll!RtlSetUserValueHeap () (C:\WINDOWS\system32\ntdll.dll)
Error accessing memory address 0x64: Input/output error.
In ()
Error accessing memory address 0x64: Input/output error.
In ()
Error accessing memory address 0x64: Input/output error.
In ()
Error accessing memory address 0x64: Input/output error.
In ()
Error accessing memory address 0x64: Input/output error.
In ()
[...]
Debugger finished with status 0
7.
from tdm-gcc-5.1.0-3.exe - to CB (into MinGW): bin,include,lib,libexec,share ("update" gcc from 4.9.2 to 5.1.0)
check "update" with my C console little sample — Debug\Release (w/o change settings) compiled with 5.1.0 (sizes of exe equal 4.9.2) — OK
with wxMSW-3.1.0_gcc510TDM_Dev not helped (terminated with status -1073741819)
QQ:
Why "Process terminated with status -1073741819" (debugger not helped) ???
What I do wrong exactly ???
May be I need to add/change some code (done in project, but useless too) ???
As I see, wxWidgets v.3.1.0 for gcc 5.1.0 (wxMSW-3.1.0_gcc492TDM_Dev.7z not loaded\checked for now) total incompatible with gcc 4.9.2 in CB 16.01 ???
So (if it is) how TDM-GCC-32 complect (extracted tdm-gcc-5.1.0-3.exe) set to CB 16.01 right (just copy over bin,include,lib,libexec will be enough or need some reconfig,etc) ???
Or m/b all incompatible with my old WXP32b ??? :o :-\
How correct use/recompile sources (wxWidgets-3.1.0.7z) under CB 16.01 with gcc 4.9.2\5.1.0 (and reconfig CB) for project w/o "terminated" errors and these large *.dll (static-link, includs resourses owns and needed functions only, of course) ??? +add2FAQ(if it exist&feasible)
The setup.h is found in the library folder of the wxWidgets installation, so you have to add this folder to your compiler search paths. But you fixed this problem anyway (just not as elegant ;) )
In Global Variable Editor?
Where exactly?
in begin was set by "wizard" (creating project):
default
wx
base: D:\DEVELOPE\wxWidgets
lib: D:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll
but now I did checked "Settings->Global variables…" and not founded "wx" at all (in "Current variables")
of course, rebuild not helped (final: "Process terminated with status -1073741819") :(
Ctrl+F11 Rebuild log (10wrngs in wx\window.h):
||=== Build: Debug in 1 (compiler: GNU GCC Compiler) ===|
D:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_Main.cpp|101|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_Main.cpp|101|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_Main.cpp|101|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_Main.cpp|101|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_Main.cpp|101|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
D:\DEVELOPE\CodeBlocks\1\_Main.cpp|101|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
||=== Build finished: 0 error(s), 10 warning(s) (0 minute(s), 16 second(s)) ===|
So, real need wx\msw\ place to path ( where in project now? where in global CB setting for future? )
F9 Build&run log:
-------------- Build: Debug in 1 (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -LD:\DEVELOPE\wxWidgets\lib\gcc_dll -Ld:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll -o bin\Debug\1.exe obj\Debug\_App.o obj\Debug\_Main.o obj\Debug\resource.res -mthreads -lwxmsw31ud_core -lwxbase31ud -lwxpngd -lwxzlibd -mwindows
Output file is bin\Debug\1.exe with size 2.04 MB
Process terminated with status 0 (0 minute(s), 4 second(s))
0 error(s), 0 warning(s) (0 minute(s), 4 second(s))
-------------- Run: Debug in 1 (compiler: GNU GCC Compiler)---------------
Checking for existence: d:\DEVELOPE\CodeBlocks\1\bin\Debug\1.exe
Executing: "d:\DEVELOPE\CodeBlocks\1\bin\Debug\1.exe" (in d:\DEVELOPE\CodeBlocks\1\.)
Process terminated with status -1073741819 (0 minute(s), 0 second(s))
any more ideas? :o
Q:
So, m/b incompatible with system (OS,libs,compiler,etc — like mthreads)? ( uptimes WXP ~ weeks\months; W7 ~ hours\days — so, will check later under W7 )
try (see #4):
Project -> options -> build -> linker (search dirs: comp,linker,res - for Debug\Release):
D:\DEVELOPE\wxWidgets\lib\gcc_dll\mswud
was+ d:\DEVELOPE\wxWidgets\lib\gcc510TDM_dll
now+ d:\DEVELOPE\wxWidgets\include\wx\msw\
or(NTFS-link)+ d:\DEVELOPE\CodeBlocks\MinGW\include\wx\msw\
Ctrl+F11 Rebuild log:
||=== Build: Debug in 1 (compiler: GNU GCC Compiler) ===|
d:\DEVELOPE\wxWidgets\include\wx\msw\dde.h|93|error: 'wxDDEConnectionList' does not name a type|
d:\DEVELOPE\wxWidgets\include\wx\msw\dde.h|99|error: 'wxDDEConnectionList' does not name a type|
d:\DEVELOPE\wxWidgets\include\wx\msw\dde.h|124|error: 'wxDDEConnectionList' does not name a type|
d:\DEVELOPE\wxWidgets\include\wx\msw\dde.h|129|error: 'wxDDEConnectionList' does not name a type|
d:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
d:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
d:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
d:\DEVELOPE\CodeBlocks\1\_App.cpp|34|warning: 'virtual void wxWindowBase::SetInitialBestSize(const wxSize&)' is deprecated: use SetInitialSize() instead. [-Wdeprecated-declarations]|
D:\DEVELOPE\wxWidgets\include\wx\window.h|1917|note: declared here|
||=== Build failed: 4 error(s), 4 warning(s) (0 minute(s), 19 second(s)) ===|
not helped comeback "platform.h" to def (see #4)
PFM WTF?! >:(
honestly i don't get what you are doing...
but lets try to go trought this step by step:
Code::Blocks v.16.01 (gcc492) + wxWidgets v.3.1.0 (gcc510TDM)
this won't work... You need exactly the same version of the compiler for wxWidgets and your program...
So if you are using the compiler provided by the codeblocks installation this will not work... This leads to errors like
Process terminated with status -1073741819 (0 minute(s), 0 second(s))
So you have to install gcc510TDM and set codeblocks up, that it is using this compiler
For this install the compiler in something without spaces like c:\mingw32_TDM_51
Then go to codeblocks
Settings->Compiler->Compiler Settings
Select "GNU GCC Compiler" from the drop down menu and hit "copy". Enter a new name, something like "TDM-GCC-51". Hit ok.
Go to "Toolchain executables" tab and select your tdm installation path in the "compiler installations path" filde (ex. c:\mingw32_TDM_51)
Make sure that all executable names are correct...
Hit OK...
Open your project.
Project->Build options
Select your newly created compiler from the dropdown menu "selected compiler". Hit "Yes" and "Yes" and "OK"
Close the dialog and make a rebuild (or clean and build)
Now to set up wxWidgets: I assume that the wizard does not work with wxWidgets version higher than 3.0.x ... Someone will fix this in the future
under Settings->global variables
create a variable with the name "wx" and set the "base" to the base path of your wxWidgets installation. (This is not a process done by the wizard. You have to do this by your own)
Now go to
Project-> Build options->search directories->compiler
$(#wx.include)
$(#wx.lib)\gcc_dllWX_CFG\mswWX_SUFFIX
replace WX_CFG and WX_SUFFIX with the corresponding names of your widgets installation (probably WX_CFG=u and WX_SUFFIX=30 )
Project-> Build options->search directories->linker
replace WX_CFG with the corresponding names of your widgets installation (probably WX_CFG=u)
Project-> Build options->search directories->resource compiler (i don't know if this is necessary)
$(#wx.include)
$(#wx.lib)\gcc_dllWX_CFG\mswWX_SUFFIX
replace WX_CFG and WX_SUFFIX with the corresponding names of your widgets installation (probably WX_CFG=u and WX_SUFFIX=30 )
Project-> Build options->linker
wxmsw$(WX_VERSION)$(WX_SUFFIX)
replace WX_CFG and WX_SUFFIX with the corresponding names of your widgets installation (probably WX_CFG=u and WX_SUFFIX=30 )
This should do the trick. If you have problems please post a full rebuild log (like you always did. thx for that ;) )...
greetings
Normal values
WX_CFG=
WX_SUFFIX=u
WX_VERSION=30
Tim S.