Ich kompiliere ein Programm, das eine Boost-Thread-MT-Bibliothek benötigt. Ich habe libboost-all-dev mit installiert, sudo apt-get install libboost-all-dev
aber der Compiler sagt, dass er die Boost-Thread-MT-Bibliothek nicht finden kann. Ist diese Bibliothek in einem anderen Paket? Bitte führen Sie mich, was ich dafür installieren muss.
8
libboost-thread-dev
installiert?-mt
Das Hauptpaket Boost enthält keine Bibliotheken. Siehe auch diese ungelöste Frage.Antworten:
Das
-mt
Suffix wurde entfernt. Die installierten Boost-Bibliotheken sind Multithreading-sicher.Sie können Ihr Programm versus kompilieren
libboost-thread
. Entweder durch Ändern der Quelle, um Nicht--mt
Bibliotheken zu verwenden, oder durch Herstellen symbolischer Linkslibboost_thread.a
→libboost_thread-mt.a
. Gleiches gilt, wenn Sie gemeinsam genutzte Bibliotheken benötigen.so
.quelle
AC_CHECK_LIB
check-target-builds
scheint die gleiche Funktionalität von Autoconf für boost.build zu bieten.Wenn Ihr Projekt verwendet
CMake
, muss der folgende Schalter im FindBoost- Modul deaktiviert werden:-DBoost_USE_MULTITHREADED=OFF
quelle
Dieser Link bezieht sich auf diese Frage.
Sie können auch versuchen, Boost aus dem Quellcode zu kompilieren, anstatt die apt-get-Version zu verwenden.
Die Argumente
--layout
,threading
undbuild-type
wird dazu beitragen.Versuchen Sie also diesen Befehl, um boost zu installieren, nachdem
bootstrap.sh --prefix=/path/of/yours
:Dann erhalten Sie alle
-mt
Bibliotheken.quelle