编译文件时无法在ubuntu上找到一些boost库

时间:2016-08-11 13:47:19

标签: c++ linux ubuntu gcc boost

我正在尝试编译此存储库:https://github.com/graehl/carmel

有一个标准的makefile用于编译。

虽然我已经安装了升级库“libboost-all-dev”,但我遇到了这样的错误:

/usr/bin/ld: cannot find -lboost_random-mt
/usr/bin/ld: cannot find -lboost_timer-mt
/usr/bin/ld: cannot find -lboost_chrono-mt
/usr/bin/ld: cannot find -lboost_system-mt
collect2: error: ld returned 1 exit status
../graehl/graehl.mk:331: recipe for target 'bin/linux/carmel' failed
make: *** [bin/linux/carmel] Error 1

我该如何解决问题?

谢谢,

2 个答案:

答案 0 :(得分:1)

如果您的系统中有所需的软件包,请尝试使用此命令。所以,如果你拥有它,你可以尝试编译项目,注意你的靴库是如何安装的。在README.md中写道:

cd carmel; make -j 4 install BOOST_SUFFIX=-mt INSTALL_PREFIX=/usr/local
# BOOST_SUFFIX= depends on how your boost libraries are installed - ls /usr/lib/libboost*.so
(prerequisites: GNU Make (3.8) C++ compiler (GCC 5, clang 3.7, or visual studio 2015 will do) and Boost, which you probably already have on your linux system; for Mac, you can get them from Homebrew. For windows: MSVC2015 should work; you can also use cygwin or mingw.

答案 1 :(得分:1)

所以我认为问题在于你没有告诉你的链接器靴子库在哪里。 我想那时我就是这个问题Question 因此,使用此命令可以了解库的位置。

dpkg -S <name of library>

例如:

dpkg -S boost_random 

表示-lboost_random-mt