J'essaie de créer un objet partagé (.so) qui le fera, en incluant un objet partagé avec -lboost
, j'inclue implicitement tout le boost bibliothèques. Voici ce que j'ai essayé:Création d'un objet partagé fictif (.so) pour dépendre d'autres objets partagés
#!/bin/sh
BOOST_LIBS="-lboost_date_time-gcc43-mt -lboost_filesystem-gcc43-mt"
#truncated for brevity
g++ $BOOST_LIBS -shared -Wl,-soname,libboost.so.1 -o libboost.so.1.0
ln -si libboost.so.1.0 libboost.so.1
ln -si libboost.so.1 libboost.so
Après avoir placé tous les 3 fichiers créés (libboost.so libboost.so.1 libboost.so.1.0) dans le même répertoire que toutes les bibliothèques Boost, j'ai essayé la compilation d'un programme de test avec (ce qui dépend de -lboost_date_time-gcc43-mt
):
g++ -lboost test.cpp
Faire cela, je me suis le même message de référence non définie ne pas avoir -lboost. Ayant -lboost_date_time-gcc43-mt works
, mais c'est trop verbeux :) Comment obtenir -lboost pour faire entrer automatiquement les autres bibliothèques partagées?
Mise à jour: Exécution d'objdump -x libboost.so | grep NÉCESSAIRE donne ceci: NÉCESSAIRE libboost_date_time-gcc43-mt-1_38.so.1.38.0 NÉCESSAIRE libboost_filesystem-gcc43-mt-1_38.so.1.38.0 NÉCESSAIRE /boot/develop/lib/x86/libstdc++.so NÉCESSAIRE libroot.donc (Notez que je cours Haiku) –