Skip to content


WxWidgets static linking

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:

biblioteki

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.

Posted in TechBlog.


0 Responses

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



Some HTML is OK

or, reply to this post via trackback.

« »