Sorry to awake this post, but is it always true that there are still incompatibilities between C::B (svn 9114 in my case) and wxwidgets 2.9 under Windows (2.9.4 in my case) ?
I ask this, because I see that there is some work on C::B 64 bits version under Windows, apparently based on wxwidgets 2.9.
It's why I'm interested by trying first to test the .cbp and .workspace svn C::B generating files, but in 32 bits for now.
So, as a first step I tried to use CodeBlocks_wx29.workspace and found different problems.
1) when compiling Exporter wx29, I obtained a warning :
WARNING: Target 'Exporter wx2.9.x - default': Unable to resolve 1 external dependency/ies:
libwxPdfDocument.a
Strange, because this lib has been correctly generated in subfolder lib29 in the previous generating step. More, the plugin seems to work correctly when generating a pdf file from a source file !
2) except this point, C::B is correctly generated. But problems appear after launching it :
2.1) If I launch C::B directly (double click on the .exe for example), then choose a project in the displayed project list, C::B crashes because of a problem with FortranProject plugin. The displayed message is :
wxWidgets Debug Alert
../../src/msw/bitmap.cpp(846): assert "image.IsOK()" failed in
CreateFromImage(): invalid image
Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings.
But if I choose the button Yes, No or Cancel, the results is a crash with some references to fortran plugin in the .RPT file :
-------------------
Error occured on Friday, May 24, 2013 at 08:19:54.
C:\Program Files (x86)\CodeBlocks_wx29\codeblocks.exe caused a Breakpoint at location 77113219 in module C:\Windows\syswow64\KERNELBASE.dll.
Registers:
eax=00000001 ebx=00000000 ecx=76b698da edx=00000002 esi=6f2ca39c edi=00000088
eip=77113219 esp=0028e64c ebp=0028e968 iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
Call stack:
77113219 C:\Windows\syswow64\KERNELBASE.dll:77113219 DebugBreak
00B09C66 C:\Program Files (x86)\CodeBlocks_wx29\codeblocks.dll:00B09C66 _Z12cbLoadBitmapRK8wxString12wxBitmapType
65E6D158 C:\Program Files (x86)\CodeBlocks_wx29\share\codeblocks\plugins\FortranProject.dll:65E6D158
65E80B5A C:\Program Files (x86)\CodeBlocks_wx29\share\codeblocks\plugins\FortranProject.dll:65E80B5A
...
2.2) I disabled fortran plugin. Then I tried to load some project as previouly (C++ or fortran, no matter)
Here, it's OK, but when I generate the code I obtain the same type of error messages as previouly, for example:
wxWidgets Debug Alert
../../src/common/arrsts.cpp(385): assert "iIndex != (-1)" failed in
Do you want to stop the program?
Remove(): removing inexistent element in wxArrayString::Remove
You can also choose [Cancel] to suppress further warnings.
But here, I can choose the Cancel button without C::B crash. The code is correctly generated and works as expected.
A strange thing too, is the title of these windows "wxWidgets Debug Alert" because I generated WxWidgets as usually, a release version, not a debug one !
3) Results and messages are the same if I generate C::B with the environment variable cb_release_type = -g or -O
4) If FortranProject is activated but envar plugin disabled, I obtained no error messages and no C::B crashes !
So, do I miss something ! Does anybody succeeded in generating svn C::B with wxwidgets 2.9.4 with the provided CodeBlocks_wx29.workspace file?
Or is it still too early to generate C::B with wxwidgets 2.9.4 under Windows? (but the goal is not so far, I think)
gd_on
PS : Is it possible to mix a 64 bits generated C::B version and 32 bits plugins?
I guess the Fortran -plugin is not (yet?) wx2.9 compatible.
I'm not sure, see my 4) point. May be an interaction with envar plugin ! In an other .RPT file there was also a problem in envar.dll
The wxWidgets default-build is always (more or less) a debug-build in w2.9, you have to explicitely disable this, that's the cause for the tons of warnings.
I use this command line to generate wxwidgets.
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 USE_OPENGL=1 VENDOR=cb CXXFLAGS="-fno-keep-inline-dllexport"
I have explicitly asked for a release build, so what should I must add?
And what about my question in P.S. ?
Thanks,
gd_on
I'm also getting following assert. CC gurus may want to take a look at this.
Yes, I stumbled across that, too. but the thing is: Its actually weird, because we do check if the thread is already running, as shown in the the code snippet:
if ( m_CCEnableHeaders
&& !m_SystemHeadersThreads.empty()
&& !m_SystemHeadersThreads.front()->IsRunning()
&& m_NativeParser.Done() )
{
m_SystemHeadersThreads.front()->Run();
}
So either its a weird timing issue (maybe m_NativeParser.Done() takes long and therefore the thread already got started meanwhile) or I simply don't get it... there is no other thread we launch there.
1) Ignore the warning message about libwxPdfDocument.a, it is linked correctly, but the target dependencies in the exporter plugin are incorrect.
If I remember correctly, I corrected this on linux, but obviously not on windows (do not use it often).
Here are two small patches to solve this warning when building C::B workspace under Windows.
for wx 2.8 :
Index: Exporter.cbp
===================================================================
--- Exporter.cbp (révision 9138)
+++ Exporter.cbp (copie de travail)
@@ -58,7 +58,7 @@
<Target title="default">
<Option output="..\..\..\devel\share\CodeBlocks\plugins\Exporter" prefix_auto="0" extension_auto="1" />
<Option object_output="..\..\..\.objs\plugins\contrib\source_exporter" />
- <Option external_deps="libwxPdfDocument.a;" />
+ <Option external_deps="wxPdfDocument\lib\libwxPdfDocument.a;" />
<Option type="3" />
<Option compiler="gcc" />
<Option parameters="--debug-log --multiple-instance -na -ns -nd" />
and the same one for wx 2.9 :
Index: Exporter_wx29.cbp
===================================================================
--- Exporter_wx29.cbp (révision 9138)
+++ Exporter_wx29.cbp (copie de travail)
@@ -58,7 +58,7 @@
<Target title="default">
<Option output="..\..\..\devel29\share\CodeBlocks\plugins\Exporter" prefix_auto="0" extension_auto="1" />
<Option object_output="..\..\..\.objs29\plugins\contrib\source_exporter" />
- <Option external_deps="libwxPdfDocument.a;" />
+ <Option external_deps="wxPdfDocument\lib29\libwxPdfDocument.a;" />
<Option type="3" />
<Option compiler="gcc" />
<Option parameters="--debug-log --multiple-instance -na -ns -nd" />
gd_on