Eclipse/CDT MingW Boost Build V2 bjam
-
Hallo zusammen,
ich habe vor einigen Tagen unter Eclipse/CDT mit MingW auf Windows XP die FTGL kompiliert.
Nun möchte ich für das Erstellen eines neuen Release natürlich alles automatisieren, wofür sich Eclipse nicht wirklich eignet.
Nach einiger Zeit entschied ich mich für bjam (Boost Build V2). Fast alles Bibliotheken kann ich damit erstellen, leider nicht die FTGL!
Obwohl die Einstellungen (includes preprocessor etc.) dieselben sind, wie in Eclipse eingegeben.Folgendes ist mein Stand:
Jamroot-File ..
# # define the library dependencies # lib freetype6 : : <name>freetype6 <search>D:/SoftwareDevelopement/freetype-2.3.5-1-bin/bin ; lib glu32 : : <name>glu32 <search>C:/windows/system32 ; lib opengl32 : : <name>opengl32 <search>c:/windows/system32 ; # # now compile the new library # lib libftgl : src/FTGL.cpp glu32 opengl32 freetype6 : <include>"./src" <include>"D:/SoftwareDevelopement/freetype-2.3.5-1-bin/include" <include>"D:/SoftwareDevelopement/freetype-2.3.5-1-bin/include/freetype2" : <define>"WIN32" <define>"__cplusplus" <define>"_MINGW" <define>"FTGL_LIBRARY" <link>"shared" <variant>"release" ;
und folgendes sind die Fehlermeldungen (Ausschnitt davon) wenn ich bjam aufrufe:
E:\Mike\30001_projects\001_plexso_source\libs\ftgl>bjam ...found 47 targets... ...updating 2 targets... gcc.link.dll bin\gcc-mingw-4.4.0\release\libftgl.lib Creating library file: bin\gcc-mingw-4.4.0\release\libftgl.libd:/softwaredevelop ement/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o:cygming-crtbegin.c:(.text+0x e): undefined reference to `GetModuleHandleA@4' d:/softwaredevelopement/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o:cygming-cr tbegin.c:(.text+0x23): undefined reference to `GetProcAddress@8' d:/softwaredevelopement/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o:cygming-cr tbegin.c:(.text+0x51): undefined reference to `GetModuleHandleA@4' d:/softwaredevelopement/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o:cygming-cr tbegin.c:(.text+0x66): undefined reference to `GetProcAddress@8' d:/softwaredevelopement/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o:cygming-cr tbegin.c:(.text+0x9a): undefined reference to `GetModuleHandleA@4' d:/softwaredevelopement/mingw/bin/../lib/gcc/mingw32/4.4.0/crtbegin.o:cygming-cr tbegin.c:(.text+0xaf): undefined reference to `GetProcAddress@8' d:/softwaredevelopement/mingw/bin/../lib/gcc/mingw32/4.4.0/libgcc.a(gthr-win32.o ): In function `_gthr_win32_recursive_mutex_unlock':
Im boost build user-config.jam ist lediglich "using gcc ;" definiert, obwohl MingW nicht im Standard-Pfad installiert ist. Es ändert sich aber auch nichts, wenn ich den gesamten Pfad angebe:
"using gcc : : D:/SoftwareDevelopement/mingw/bin/g++ ;"Ich hoffe, jemand von Euch weiss da weiter.
Besten Dank im Voraus.
Michael
-
Hallo zusammen,
anscheinend ist das Problem nicht so verbreitet, wie ich gehofft habe
Einen ersten Hinweis habe ich nun selber mitbekommen.
Sobald ich <link> von "shared" auf "static" setze, kann ich es zumindest kompilieren. Das Ziel ist aber eindeutig, "shared" verwenden zu können.Weiss nun ev. jemand Rat?
Gruss und besten Dank
Michael Schmid
-
Hallo
Bin mir zwar nicht sicher aber musst du bei Shared vllt noch die Linker-Flags mit angeben:
-static-libgcc -static-libstdc++
Wie gesagt keine Ahnung obs so klappt, aber bei meinen Projekten setzt ich die 2 Parameter beim Linker damit es zu static wird und die Referencen aufgelöst werden können. Oder vllt musst du auch nur die Libs mit angeben, weil danach hört es sich an das er die passenden Libs zu den Funktionen nicht findet. Könnte natürlich auch der Ordner sein der falsch ist.
Mfg marco
-
Besten Dank für deine Hilfe,
Ziel ist es aber, die Datei als dll zu erstellen, nicht statisch, oder verstehe ich jetzt etwas falsch?
Ich habe in der Zwischenzeit noch einige linkerflags bestimmen können, die weg sollten. Wie aber geht das bei bjam?
ich habe was gelesen von <optimization>off ... aber ich möchte ja nicht die ganze optimierung deaktivieren ....
Weiss jemand was hierzu ?
Gruss
Michael
-
Hallo,
vielleicht hilft ein <cxxflags>-mwindows . Ansonsten wäre es mal interessant zu sehen, wie bjam g++ aufruft - AFAIK gibt es einen verbose-Switch. Probier mal bjam --help oder so.
Falls Du hier nicht weiterkommst, kannst du auch im boost-IRC-channel Fragen (#boost@freenode), Vladimir Prus hilft Dir dort sicher weiter.Gruß
-
Hallo,
das <cxxflags>-mwindows hilft leider nicht ...
es gibt aber den switch -o, somit sehe ich nun zumindest, wie alles aufgerufen wird und da gibts einiges, dass ich in der IDE natürlich nicht mitangegeben habe. Nur wie sich dies deaktivieren lässst, habe ich leider nicht gefunden.Ich werde mich also mal an den boost-irc wenden ..
Besten Dank für den Tip.
Michael