Ändern Sie die Linker-Reihenfolge in CodeBlocks
Ich habe ein Projekt in DialogBlocks 5.03, das problemlos mit mingw32 kompiliert werden kann, aber mit CodeBlocks 13.12 wird dieser Fehler angezeigt:
F:\wxWidgets-3.0.0\lib\gcc_lib/libwxmsw30u_core.a(corelib_msw_listctrl.o):listctrl.cpp:(.text+0x1019): undefined reference to `ImageList_GetImageCount@4'
F:\wxWidgets-3.0.0\lib\gcc_lib/libwxmsw30u_core.a(corelib_msw_listctrl.o):listctrl.cpp:(.text+0x1063): undefined reference to `ImageList_Draw@24'
F:\wxWidgets-3.0.0\lib\gcc_lib/libwxmsw30u_core.a(corelib_msw_listctrl.o):listctrl.cpp:(.text+0x108c): undefined reference to `ImageList_GetIconSize@12'
Ich habe festgestellt, dass dies die Verknüpfungsreihenfolge der Bibliotheken ist. In DialogBlocks ist dies die Bibliotheksreihenfolge:
-Wl,--subsystem,windows -mwindows -static-libgcc -static-libstdc++ -lwxmsw30u_xrc -lwxmsw30u_richtext -lwxmsw30u_aui -lwxmsw30u_html -lwxmsw30u_stc -lwxmsw30u_propgrid -lwxmsw30u_ribbon -lwxmsw30u_adv -lwxmsw30u_core -lwxbase30u -lwxbase30u_net -lwxbase30u_xml -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32
Und es kompiliert erfolgreich
In CodeBlocks ist dies die Reihenfolge der Compiler-Bibliothek:
-mthreads -s -static-libgcc -static-libstdc++ -Wl,--subsystem,windows -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -lwxscintilla -lwxmsw30u_xrc -lwxmsw30u_richtext -lwxmsw30u_aui -lwxmsw30u_html -lwxmsw30u_stc -lwxmsw30u_propgrid -lwxmsw30u_ribbon -lwxmsw30u_adv -lwxmsw30u_core -lwxbase30u -lwxbase30u_net -lwxbase30u_xml -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -mwindows
Wenn ich das CodeBlocks-Projekt mit den Linkeroptionen von DialogBlocks über die Befehlszeile kompiliere, wird es erfolgreich kompiliert
Im CodeBlocks-Menü: Projekt -> Erstellungsoptionen -> Linker-Einstellungen füge ich die Bibliotheken in der gewünschten Reihenfolge hinzu, aber CodeBlocks fügt die Parameter in seiner eigenen Reihenfolge hinzu und wiederholt sogar die Bibliotheken
Wie ändere ich die Bestellung?