Index: src/CodeBlocks.cbp
===================================================================
--- src/CodeBlocks.cbp (revision 10372)
+++ src/CodeBlocks.cbp (working copy)
@@ -218,7 +218,7 @@
<Add library="advapi32" />
<Add library="wsock32" />
<Add directory="devel" />
- <Add directory="exchndl/win32/lib" />
+ <Add directory="exchndl/win32/bin" />
</Linker>
<ExtraCommands>
<Add after="cmd /c if not exist devel\share\CodeBlocks mkdir devel\share\CodeBlocks" />
Tim S.
Sorry, these files were hidden on commit - I've added the right ones, now.
Thank you.
Tim S.
This warning did NOT go way. I was thinking it happened because I linked to a DLL instead of import lib.
But, I must have been wrong.
Edit: Using TDM MinGW GCC 4.7.?
Linking executable: devel\codeblocks.exe
Warning: resolving _ExcHndlInit@0 by linking to _ExcHndlInit
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Tim S.
I get a build error when building the latest svn under mingw-build gcc 4.9.2 (32bit).
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\lib -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
.objs\src\app.o: In function `ZN13CodeBlocksApp20InitExceptionHandlerEv':
F:\cb_sf_git\trunk\src/src/app.cpp:459: undefined reference to `ExcHndlInit@0
'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (3 minute(s), 14 second(s))
2 error(s), 0 warning(s) (3 minute(s), 14 second(s))
So, I will try to use tim's patch to see whether it fix this issue.
I get a build error when building the latest svn under mingw-build gcc 4.9.2 (32bit).
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\lib -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
.objs\src\app.o: In function `ZN13CodeBlocksApp20InitExceptionHandlerEv':
F:\cb_sf_git\trunk\src/src/app.cpp:459: undefined reference to `ExcHndlInit@0
'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (3 minute(s), 14 second(s))
2 error(s), 0 warning(s) (3 minute(s), 14 second(s))
So, I will try to use tim's patch to see whether it fix this issue.
Justed tried, but still the build error:
-------------- Build: src in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler)---------------
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\bin -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
.objs\src\app.o: In function `ZN13CodeBlocksApp20InitExceptionHandlerEv':
F:\cb_sf_git\trunk\src/src/app.cpp:459: undefined reference to `ExcHndlInit@0'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 15 second(s))
2 error(s), 0 warning(s) (0 minute(s), 15 second(s))
F:\cb_sf_git\trunk\src\exchndl\win32\lib>nm libexchndl.a
dhczt.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$7
00000000 t .text
00000000 I ___home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a_iname
dhczh.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$2
00000000 i .idata$4
00000000 i .idata$5
00000000 t .text
U ___home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a_iname
00000000 I __head__home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a
00000000 i fthunk
00000000 i hname
dhczs00001.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
U __head__home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a
00000000 I __imp__ExcHndlSetLogFileNameA@4
00000000 T _ExcHndlSetLogFileNameA@4
dhczs00000.o:
00000000 b .bss
00000000 d .data
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
U __head__home_travis_build_jrfonseca_drmingw_build_lib_libexchndl_a
00000000 I __imp__ExcHndlInit@0
00000000 T _ExcHndlInit@0
Well, I do see the symbol named "_ExcHndlInit@0" when using the nm command.
Also, I see that in the dll, there is a function named "ExcHndInit", see the image shot below from the dependency walker:
(http://imagizer.imageshack.us/v2/907x558q90/661/Qj8Gbu.png)
But why the linker can't find it, they have different symbol names, can I add some name alise?
Linking executable: devel\codeblocks.exe
Warning: resolving _ExcHndlInit@0 by linking to _ExcHndlInit
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Tim S.
I also have this issue, this is because the linker try to link the exchndl.dll in your devel folder.(this dll will copied to your devel folder when you run the update.bat)
Here is my test: If you remove the exchndl.dll from the devel folder, than you get the good result:
-------------- Build: src in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler)---------------
[ 50.0%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -Winvalid-pch -DHAVE_W32API_H -D__WXMSW__ -DWXUSINGDLL -DcbDEBUG -DCB_PRECOMP -DWX_PRECOMP -DwxUSE_UNICODE -DBUILDING_PLUGIN -iquote.objs\include -I.objs\include -I. -IE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\include -IE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll\mswu -Isdk\wxscintilla\include -Isdk\wxpropgrid\include -Iinclude\tinyxml -Iinclude -Iinclude\scripting\include -Iinclude\scripting\sqplus -Iinclude\mozilla_chardet -Iinclude\mozilla_chardet\mfbt -Iinclude\mozilla_chardet\nsprpub\pr\include -Iinclude\mozilla_chardet\xpcom -Iinclude\mozilla_chardet\xpcom\base -Iinclude\mozilla_chardet\xpcom\glue -Iexchndl\win32\include -c src\app.cpp -o .objs\src\app.o
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Ldevel -Lexchndl\win32\lib -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
Output file is devel\codeblocks.exe with size 13.82 MB
[ 25.0%] Running target post-build steps
[ 50.0%] cmd /c if not exist devel\share\CodeBlocks mkdir devel\share\CodeBlocks
[ 75.0%] zip -jq9 devel\share\CodeBlocks\resources.zip src\resources\*.xrc
[100.0%] zip -jq9 devel\share\CodeBlocks\start_here.zip src\resources\start_here\*.html src\resources\start_here\*.png
cmd /c "cd src\resources & zip -0 -q ..\..\devel\share\CodeBlocks\resources.zip images\*.png images\16x16\*.png"
Process terminated with status 0 (0 minute(s), 8 second(s))
0 error(s), 0 warning(s) (0 minute(s), 8 second(s))
So, my suggest is that we can search the -Lexchndl\win32\lib before the -Ldevel.
Here is the result, looks good even you have exchndl.dll in your devel folder.
-------------- Build: src in Code::Blocks wx2.8.x (compiler: GNU GCC Compiler)---------------
[ 50.0%] g++.exe -Wall -g -pipe -mthreads -fmessage-length=0 -fexceptions -Winvalid-pch -DHAVE_W32API_H -D__WXMSW__ -DWXUSINGDLL -DcbDEBUG -DCB_PRECOMP -DWX_PRECOMP -DwxUSE_UNICODE -DBUILDING_PLUGIN -iquote.objs\include -I.objs\include -I. -IE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\include -IE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll\mswu -Isdk\wxscintilla\include -Isdk\wxpropgrid\include -Iinclude\tinyxml -Iinclude -Iinclude\scripting\include -Iinclude\scripting\sqplus -Iinclude\mozilla_chardet -Iinclude\mozilla_chardet\mfbt -Iinclude\mozilla_chardet\nsprpub\pr\include -Iinclude\mozilla_chardet\xpcom -Iinclude\mozilla_chardet\xpcom\base -Iinclude\mozilla_chardet\xpcom\glue -Iexchndl\win32\include -c src\app.cpp -o .objs\src\app.o
[100.0%] g++.exe -Lbase\tinyxml -LE:\code\wx-mingw-build-481-dw2\wxWidgets-2.8.12\lib\gcc_dll -Lexchndl\win32\lib -Ldevel -o devel\codeblocks.exe .objs\src\app.o .objs\src\appglobals.o .objs\src\associations.o .objs\src\backtracedlg.o .objs\src\breakpointsdlg.o .objs\src\compilersettingsdlg.o .objs\src\cpuregistersdlg.o .objs\src\crashhandler.o .objs\src\debugger_interface_creator.o .objs\src\debuggermenu.o .objs\src\debuggersettingscommonpanel.o .objs\src\debuggersettingsdlg.o .objs\src\debuggersettingspanel.o .objs\src\disassemblydlg.o .objs\src\dlgabout.o .objs\src\dlgaboutplugin.o .objs\src\editkeywordsdlg.o .objs\src\editorconfigurationdlg.o .objs\src\environmentsettingsdlg.o .objs\src\examinememorydlg.o .objs\src\find_replace.o .objs\src\infopane.o .objs\src\main.o .objs\src\notebookstyles.o .objs\src\printdlg.o .objs\src\projectdepsdlg.o .objs\src\projectmanagerui.o .objs\src\projectoptionsdlg.o .objs\src\recentitemslist.o .objs\src\scriptconsole.o .objs\src\scriptingsettingsdlg.o .objs\src\splashscreen.o .objs\src\startherepage.o .objs\src\switcherdlg.o .objs\src\threadsdlg.o .objs\src\virtualbuildtargetsdlg.o .objs\src\watchesdlg.o .objs\src\resources\resources.res -Wl,--enable-auto-import -Wl,--no-undefined -lcodeblocks -lwxpropgrid -lexchndl -lshfolder -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lcomctl32 -lodbc32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lwxmsw28u -mwindows
Output file is devel\codeblocks.exe with size 13.82 MB
[ 25.0%] Running target post-build steps
[ 50.0%] cmd /c if not exist devel\share\CodeBlocks mkdir devel\share\CodeBlocks
[ 75.0%] zip -jq9 devel\share\CodeBlocks\resources.zip src\resources\*.xrc
[100.0%] zip -jq9 devel\share\CodeBlocks\start_here.zip src\resources\start_here\*.html src\resources\start_here\*.png
cmd /c "cd src\resources & zip -0 -q ..\..\devel\share\CodeBlocks\resources.zip images\*.png images\16x16\*.png"
Process terminated with status 0 (0 minute(s), 9 second(s))
0 error(s), 0 warning(s) (0 minute(s), 9 second(s))
I see that there is this command now in the wx30.cbp file:
cmd.exe /c if exist devel30\exchndl.dll del devel30\exchndl.dll
But how am I supposed to run cb from cb when this dll is deleted?
When I run it, windows tells me that it cannot find the exchndl.dll.
So, what am I supposed to do?
I'm running win7 64bit, 32bit tdm 5.1, wx 3.1 master branch...
BTW, cb development on windows is pretty annoying compared to the linux experience...
The command was added in rev 10411.
src/CodeBlocks.cbp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/CodeBlocks.cbp b/src/CodeBlocks.cbp
index 94c335e..ae5f9ef 100644
--- a/src/CodeBlocks.cbp
+++ b/src/CodeBlocks.cbp
@@ -221,6 +221,7 @@
<Add directory="exchndl/win32/lib" />
</Linker>
<ExtraCommands>
+ <Add before="cmd.exe /c if exist devel\exchndl.dll del devel\exchndl.dll" />
<Add after="cmd /c if not exist devel\share\CodeBlocks mkdir devel\share\CodeBlocks" />
<Add after="zip -jq9 devel\share\CodeBlocks\resources.zip src\resources\*.xrc" />
<Add after="zip -jq9 devel\share\CodeBlocks\start_here.zip src\resources\start_here\*.html src\resources\start_here\*.png" />
I think to run C::B correctly, you need to run "update*.dat". In the batch file, the exchndl.dll will be copied there.
The question is: I think we don't need to delete the dll, we just need to set the lib search path priority, as I said before. This can avoid the delete/copy exchndl.dll issue.
Hi, Tim, I see in the 0001 patch, there are some code snippet
diff --git a/src/plugins/contrib/help_plugin/help-plugin.cbp b/src/plugins/contrib/help_plugin/help-plugin.cbp
index bc3500f..7015570 100644
--- a/src/plugins/contrib/help_plugin/help-plugin.cbp
+++ b/src/plugins/contrib/help_plugin/help-plugin.cbp
@@ -64,8 +64,8 @@
</Compiler>
<Linker>
<Add option="-mthreads" />
- <Add library="bzip2/libbzip2.a" />
- <Add library="zlib/libz.a" />
+ <Add library="bzip2\libbzip2.a" />
+ <Add library="zlib\libz.a" />
</Linker>
<ExtraCommands>
<Add after="zip -j9 ..\..\..\devel\share\CodeBlocks\help_plugin.zip manifest.xml *.xrc *.png" />
Is that correct? change the "/" to "\" ?
The lib folder structure in code tags below
I added folders for the static libs and removed lib name suffixes of 30, 64, or 30_64.
lib
|-- base
| `-- libtxml.a
|-- libcodeblocks.a
|-- libwxchartctrl.a
|-- libwxcustombutton.a
|-- libwxflatnotebook.a
|-- libwximagepanel.a
|-- libwxkwic.a
|-- libwxled.a
|-- libwxpropgrid.a
|-- libwxsmithlib.a
|-- libwxspeedbutton.a
|-- libwxtreelist.a
|-- plugins
| |-- compilergcc
| | `-- libdepslib.a
| `-- contrib
| |-- SpellChecker
| | |-- libhunspell.a
| | `-- libwxSpellChecker.a
| |-- devpak_plugin
| | `-- libbz2.a
| |-- help_plugin
| | |-- libbzip2.a
| | `-- libz.a
| |-- source_exporter
| | `-- libwxPdfDocument.a
| `-- wxSmithPlot
| `-- libMathPlot.a
`-- sdk
|-- libsqplus.a
|-- libsqstdlib.a
|-- libsquirrel.a
`-- libwxscintilla_cb.a
10 directories, 24 files
lib30
|-- base
| `-- libtxml.a
|-- libcodeblocks.a
|-- libwxchartctrl.a
|-- libwxcustombutton.a
|-- libwxflatnotebook.a
|-- libwximagepanel.a
|-- libwxkwic.a
|-- libwxled.a
|-- libwxsmithlib.a
|-- libwxspeedbutton.a
|-- plugins
| |-- compilergcc
| | `-- libdepslib.a
| `-- contrib
| |-- SpellChecker
| | |-- libhunspell.a
| | `-- libwxSpellChecker.a
| |-- devpak_plugin
| | `-- libbz2.a
| |-- help_plugin
| | |-- libbzip2.a
| | `-- libz.a
| `-- source_exporter
| `-- libwxPdfDocument.a
`-- sdk
|-- libsqplus.a
|-- libsqstdlib.a
|-- libsquirrel.a
`-- libwxscintilla_cb.a
9 directories, 21 files
lib30_64
|-- base
| `-- libtxml.a
|-- libcodeblocks.a
|-- libwxchartctrl.a
|-- libwxcustombutton.a
|-- libwxflatnotebook.a
|-- libwximagepanel.a
|-- libwxkwic.a
|-- libwxled.a
|-- libwxsmithlib.a
|-- libwxspeedbutton.a
|-- plugins
| |-- compilergcc
| | `-- libdepslib.a
| `-- contrib
| |-- SpellChecker
| | |-- libhunspell.a
| | `-- libwxSpellChecker.a
| |-- devpak_plugin
| | `-- libbz2.a
| |-- help_plugin
| | |-- libbzip2.a
| | `-- libz.a
| `-- source_exporter
| `-- libwxPdfDocument.a
`-- sdk
|-- libsqplus.a
|-- libsqstdlib.a
|-- libsquirrel.a
`-- libwxscintilla_cb.a
9 directories, 21 files
Still building several contrib projects; wxContribItem and wxSmith are the main ones to change output below:
$ tree src/lib
src/lib
|-- contrib
| |-- SpellChecker
| | |-- libhunspell.a
| | `-- libwxSpellChecker.a
| |-- devpak_plugin
| | `-- libbz2.a
| |-- help_plugin
| | |-- libbzip2.a
| | `-- libz.a
| |-- source_exporter
| | `-- libwxPdfDocument.a
| `-- wxSmithPlot
| `-- libMathPlot.a
|-- libcodeblocks.a
|-- libdepslib.a
|-- libsqplus.a
|-- libsqstdlib.a
|-- libsquirrel.a
|-- libtxml.a
|-- libwxchartctrl.a
|-- libwxflatnotebook.a
|-- libwxpropgrid.a
`-- libwxscintilla_cb.a
6 directories, 17 files
Tim S.
I don't know if complete flattening is good. Third party libs may be needed in different versions (as the bzip lib, for example). So if the folders are "too flat" you would probably overwrite a library with a wrong version which is bad. Every target (being plugin or SDK) should have an own folder to cope with such.
Keep in mind that this will lead to a disaster if it happens on linux!
There we are building with every symbol being visible. Which means that the first symbol named X to load wins and will be called, no matter if the code is expecting the other symbol. This is named symbol collision and it is pretty bad.
Why are there two different bzip implementations? As far as I can see they are named differently (bz2 and bzip2). Are they the same thing? Same API?
I have no idea why there is two different bzip implementations; will check in the furture about why.
Here's the layout I am trying to use in Linux; still have a ways to go before the patch is ready.
Any reasons why this layout is bad? Or ways to improve it?
$ tree src/lib src/lib28 src/lib30
src/lib
+-- contrib
| +-- help_plugin
| +-- libbzip2.a
| +-- libz.a
+-- libdepslib.a
+-- libsqplus.a
+-- libsqstdlib.a
+-- libsquirrel.a
+-- libtxml.a
src/lib28
+-- contrib
| +-- source_exporter
| | +-- libwxPdfDocument.a
| +-- SpellChecker
| +-- libwxSpellChecker.a
+-- libwxscintilla_cb.a
src/lib30
+-- contrib
| +-- source_exporter
| | +-- libwxPdfDocument.a
| +-- SpellChecker
| +-- libwxSpellChecker.a
+-- libwxscintilla_cb.a
8 directories, 13 files
Tim S.