【发布时间】:2016-09-17 04:17:37
【问题描述】:
我下载了 boost 1.61 并将其提取到 /usr/local/boost_1_61_0 并在安装时将前缀路径设置为 /usr/local/ ,其中安装了所有 boost 库。我正在尝试安装使用 Boost c++ 库(从https://github.com/hubsw/FRESCO 下载)构建的用于 DNA 数据压缩的 FRESCO 工具。他们提供了 make 实用程序来安装 FRESCO 工具。
但是当我尝试运行 make 时,我收到有关 BOOST:FILESYSTEM 和 BOOST:IOSTREAM 库的错误,如下所示
undefined reference to `boost::iostreams::detail::gzip_header::reset()'
undefined reference to boost::iostreams::detail::zlib_base::~zlib_base()'
undefined reference to `boost::filesystem::detail::create_directories(boost::filesystem::path const&, boost::system::error_code*)'
还有更多与 boost iostream 和文件系统相关的内容。
在 FRESCO 中,他们提到他们需要 BOOST 1.51(更高版本)、boost filesystem、boost iostream、boost threading-mt。
有人可以建议我哪里出错了吗?如果我使用 ubuntu 的 make 实用程序安装 FRESCO 工具,如何链接 boost 文件系统/iostream?
【问题讨论】:
-
尝试将
-L/path/to/boost/libs -lboost_filesystem -lboost_system -lboost-iostreams添加到编译标志。相关:stackoverflow.com/q/17950840/3093378 -
我尝试使用命令“make -I/usr/local/boost_1_61_0/libs -lboost_filesystem -lboost_system -lboost-iostreams”,但得到了同样的错误。 Path/to/boost/libs 是我们在使用 "./b2 install prefix=
" 安装 boost 时提取 Boost 或前缀中提到的路径的路径 -
当我使用 -L 时,我得到“无效选项”作为错误。我认为 -L 用于最新的 mtime betn 符号链接和目标。所以我尝试了 -I 选项。
-
@Sumit 你不能像这样将标志添加到
make命令行。您必须修改Makefile。 -
好的。当我看到带有选项的 make 手册页时,我感到很困惑。我尝试修改makefile并添加了“-L/path/to/boost/libs -lboost_filesystem -lboost_system -lboost-iostreams”,在那里我找到了在makefile中编译主文件的命令,但我仍然遇到同样的错误。您能否建议我的 boost 安装和链接 @mindriot 有什么问题?
标签: c++ ubuntu boost boost-thread dna-sequence