lib in ausführbare Datei "einbinden"
-
Hallo
ich hab ein Programm geschrieben und verwende dabei eine Funktion aus eine Bibliothek (libboost_thread.so.1.42.0).
Dafür inkludiere ich"boost/thread.hpp".
Beim kompilieren verwende ich "-lboost_thread-mt -lpthread".
Die Datei lässt sich auch wunderbar auf meinem Rechner ausführen. Verwende ich diese Datei auf einen baugleichen Rechner (+ gleiches Betriebssystem), bekomm ich die folgende Fehlermeldung:"error while loading shared libraries: libboost_thread.so.1.42.0: cannot open shared object file: No such file or directory"
Auf diesem Rechner ist die Datei nicht vorhanden, da kein boost installiert ist. Soweit alles klar
Ist es irgendwie möglich, die Bibliothek in die ausführbare Datei zu bekommen, ohne dass ich dort erst boost installieren muss?
Danke und viele Grüße
Martin
-
Warum lieferst du die libboost_thread.so nicht einfach mit?
-
Link es static.
-
SeppJ schrieb:
Link es static.
Ich hab es mit -static probiert, die Datei wird dann auch deutlich größer, aber es besteht weiterhin der Fehler...
-
Verwendest du eine im Debug-Modus erstellte Datei? Wenn nein, dann versuch's im Release-Modus.
-
Rew. schrieb:
Verwendest du eine im Debug-Modus erstellte Datei? Wenn nein, dann versuch's im Release-Modus.
Ich verwende schon die "Release"-Version. Ohne -static ist die Datei 8 kb groß. Mit -static ist sie 1,5 mb groß.
Beim linken verwendet eclipse folgenden Befehl:**** Build of configuration Release for project boost **** make all Building target: boost Invoking: GCC C++ Linker g++ -L/usr/lib -static -o"boost" ./src/boost.o -lboost_thread-mt -lpthread Finished building target: boost
Sieht für mich eigentlich richtig aus (was ich bisher so bei Tante google gefunden habe).
-
railrun schrieb:
Rew. schrieb:
Verwendest du eine im Debug-Modus erstellte Datei? Wenn nein, dann versuch's im Release-Modus.
Ich verwende schon die "Release"-Version. Ohne -static ist die Datei 8 kb groß. Mit -static ist sie 1,5 mb groß.
Beim linken verwendet eclipse folgenden Befehl:**** Build of configuration Release for project boost **** make all Building target: boost Invoking: GCC C++ Linker g++ -L/usr/lib -static -o"boost" ./src/boost.o -lboost_thread-mt -lpthread Finished building target: boost
Sieht für mich eigentlich richtig aus (was ich bisher so bei Tante google gefunden habe).
Hat sich jetzt erledigt... Der nette Kollege am anderen Rechner hat immer die gleiche Datei verwendet... Sorry für stören und danke für die Hilfe