Nastepny wpis dotyczacy wxWidgets, tym razem o statycznym linkowaniu (?) biblioteki.
Dzisiaj spedzilem caly dzien probujac rozgryzc to zagadnienie. W koncu sie udalo, przy wsparciu chlopakow z boarda C::B.
A wiec krok po kroku:
zeby moc korzystac ze statycznych bibliotek trzeba je najpierw wygenerowac:
mingw32-make -f makefile.gcc USE_XRC=1 MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=debug USE_OPENGL=1
mingw32-make -f makefile.gcc USE_XRC=1 MONOLITHIC=1 SHARED=0 UNICODE=1 BUILD=release USE_OPENGL=1
W build options dodajemy nowy target i sprawdzamy czy w glownych definicjach projektu (nie poszczegolnych targeach) znajduje sie #define WXUSINGDLL.
Kasujemy bez zastanawiania sie. Potem bedziemy na forum szukac jak sie ta definicja nazywala hehe.
Teraz wchodzimy do naszego nowego targetu i dodajemy co nastepuje:
Nie zapominamy o zaznaczeniu „Prepend target options…”.
Search directories ustawiamy na:
Compiler: C:\wxWidgets-2.8.8\lib\gcc_lib\mswu
Linker: C:\wxWidgets-2.8.8\lib\gcc_lib
Resource compiler: C:\wxWidgets-2.8.8\lib\gcc_lib\mswu
Teraz z glownego menu wybieramy Settings / Compiler And Debugger / Global Compiler Settings/ Other Settings tab / Advanced options / Link object files to executables
i zmieniamy na:
$linker -o $exe_output $libdirs $link_objects $link_resobjects $libs $link_options -mwindows
(fajnie byloby zapisac gdzies to co bylo wczesniej).Przy okazji warto zaznaczyc Compiler Logging na Full Command Line – dzieki temu wiadomo jakie komendy sa wydawane podczas kompilacji / linkowania.
To chyba wszystko. Warto pozniej sprawdzic czy nasze buildy DLL dzialaja – jezeli nie to zobaczcie czy jest w nich WXUSINGDLL.

0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.