Developer forums (C::B DEVELOPMENT STRICTLY!) > Contributions to C::B

SpellChecker_wx31 cbp bug ?

(1/3) > >>

gd_on:
In SpellChecker_wx31*.cbp, svn 11488, this line (n° 63) :

--- Code: ---<Variable name="WX_VERSION" value="28" />

--- End code ---
is probably wrong. It should be value="31".
Nevertheless, compilation works as expected, so may be this line is not used.
gd_on

ollydbg:

--- Quote ---Nevertheless, compilation works as expected, so may be this line is not used.
--- End quote ---
This is interesting, which version of C::B do you use to build C::B?

See some discussion here:Code::Blocks / Tickets / #744 Can't compile SpellChecker plugin on MSW and WX31

gd_on:
When I compiled svn 11488, my operationnal C::B version was 11482.
May be the reason why it worked is not there.
My usual compiler is TDM 4.9.2 because gfortran 5.1 does not work as expected (32 or 64 bits, respectively in C:\MinGW32 and C:\MinGW64). I tried also a standard 8.1 version (posix, seh for 64 bits and posix, sjlj for 32 bits), but only for tests until now.
In my MinGW64\bin  folder I have both wxmsw28u_gcc_cb_64.dll and wxmsw311u_gcc_cb_64.dll because I have some "old" wxwidgets executables still working with wxwidgets 2.8.12 64 bits.
In my MinGW32\bin  folder I have both wxmsw28u_gcc_cb.dll and wxmsw311u_gcc_cb.dll because I have some "old" wxwidgets executables still working with wxwidgets 2.8.12 32 bits.
I have also a C:\wxWidgets-2.8.12 folder where wxWidgets 2.8 was built.
C::B itself is linked with wxWidgets 3.1.1 64 bits.
So may be, when I build C::B, spellchecker finds a 2.8 library at compile time and use it. Strange indeed ! I must certainly switch completely to wxWidgets 3.1.1 and forget 2.8.12 version, but I have still some work before switching.
gd_on

Miguel Gimenez:
Ticket 744 was closed, but it is not completely fixed. Revision 11488 fixed the wx28 projects, but the wx30 projects must be also fixed and the changes to wx31 projects were flawed, using 28 instead of 31 (as gd_on noted). In that ticket I attached a patch that wasn't used.

ollydbg:
Here is the build log of rev11488 of spell check 32bit wx31 project(SpellChecker_wx31.cbp).

About the linker option, only the last target is need the linking option "-lwxmsw31u", the other targets do not need this linker options, so WX_VERSION is only used in the last target. The other targets are just using the ar.exe to achieve the object files.

About the compiler option when building the first target named "hunspell"

--- Code: ---[  5.0%] g++.exe -DHAVE_W32API_H -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -std=gnu++11 -g -O0 -pipe -mthreads -fmessage-length=0 -fexceptions -DHUNSPELL_STATIC -Iwxspellchecker\include -IE:\wxWidgets-3.1.1-rc\include -IE:\wxWidgets-3.1.1-rc\lib\gcc_dll\mswu -Ihunspell\src\hunspell -Ihunspell\ -c hunspell\src\hunspell\affentry.cxx -o ..\..\..\.objs31\plugins\contrib\SpellChecker\hunspell\hunspell\src\hunspell\affentry.o

--- End code ---
I see in the target's compiler option, there is a line:

--- Code: ---$(#WX31.lib)\gcc_dll$(WX_CFG)\msw$(WX_SUFFIX)

--- End code ---
But the WX_CFG and WX_SUFFIX is not defined in the target level. I also don't find those variables in project level.
So, how does those custom variables expand? Maybe, I just build the CodeBlocks_wx31.cbp, and the custom variables are cached?

Navigation

[0] Message Index

[#] Next page

Go to full version