C++ [OS X / Code::Blocks] Dynamic libarary Pfad und boost Linker-Problem

badday

Commander
Registriert
Sep. 2007
Beiträge
3.023
Moin zusammen,

ich bin gerade dabei, ein Projekt auf OS X zu portieren, habe aber noch ein paar Probleme.

1. Dynamic Library Pfad
Unter Linux war ich immer gewohnt, etwa ../bin als relativen Pfad anzugeben, da da immer vom Verzeichnis, in dem das binary ausgeführt wird, ausgegangen zu werden scheint. Unter OS X gebe ich nun momentan immer
DYLD_LIBRARY_PATH=<full path to binary directory>
vor der Ausführung an. Kann ich dies irgendwie umgehen, indem ich das als Linker-Flag o. Ä. angebe? Ich verwende die gcc.


2. Boost Linking Problem
Ich habe die libs und Abhängigkeiten von macports.org ( http://www.macports.org ). Die Bibliotheken wurden erfolgreich kompiliert und ich linke sie in Code::Blocks wie üblich durch einen Eintrag unter "Link libraries".
Allerdings meldet er dennoch am Ende beim Linken:

Undefined symbols:
"boost::system::get_generic_category()" referenced from:
__static_initialization_and_destruction_0(int, int) in myfile.o
__static_initialization_and_destruction_0(int, int) in myfile.o
__static_initialization_and_destruction_0(int, int) in myfile.o
"boost::system::get_system_category()" referenced from:
__static_initialization_and_destruction_0(int, int) in myfile.o
__static_initialization_and_destruction_0(int, int) in myfile.o

ld: symbol(s) not found

Mach ich hier irgendetwas falsch?



Vielen Dank & Gruß,

badday
 
Zuletzt bearbeitet:
Die Kommandozeile zum Linken sieht so aus:

g++ -L../../../Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib -o ../bin/exec .objs/file1.o .objs/file2.o .objs/file3.o -framework OpenGL -framework IOKit -framework Carbon -framework Cocoa -framework Quartz -framework OpenAL ../Abhaengigkeiten/boost/lib/libboost_system.a ../Abhaengigkeiten/boost/lib/libboost_filesystem.a [more static libs] [dynamic libs] -lX11 -lXxf86vm -lGL -lpthread -lcurl -lz
Ergänzung ()

Problem lag darin, dass ich noch ältere Header nutze. Hat sich mit einem Update erledigt.
 
Zurück
Oben