【问题标题】:How to use Boost Wave Lib on Linux如何在 Linux 上使用 Boost Wave Lib
【发布时间】:2014-08-21 21:48:28
【问题描述】:

标题

我正在尝试使用 Boost Wave,但我无法使用 boost_1_55_0/lib/wave/samples 中的这些示例编译它。我使用的系统是 Ubuntu 12.04 64-bit

例如,当我尝试编译 quick_start.cpp 时,我使用了推荐:

c++ -I ~/Documents/boost_1_55_0 quick_start.cpp -o parser \
~/Documents/boost_1_55_0/stage/lib/libboost_wave.a

libboost_wave.a 是我从 boost 的 ./b2 构建推荐中得到的。编译输出是一个超长的结果,以:

结尾
collect2: ld returned 1 exit status

输出的其余部分看起来像(它们很长):

/tmp/ccpBhjhs.o: In function `boost::filesystem::operator!=(boost::filesystem::path
const&, boost::filesystem::path const&)':
quick_start.cpp:     (.text._ZN5boost10filesystemneERKNS0_4pathES3_[boost::filesystem::operator!=(boost::filesystem::path const&, boost::filesystem::path const&)]+0x1f): undefined reference to `boost::filesystem::path::compare(boost::filesystem::path const&) const'
/tmp/ccpBhjhs.o: In function `boost::thread_exception::thread_exception(int, char const*)':

我不知道发生了什么!谢谢阅读!如果你能帮助我,请!

附言我按照Boost Website 上的步骤构建了wave 库。我设法使用正则表达式库来构建示例电子邮件提取程序。所以我认为我的波形库构建正确。

【问题讨论】:

  • 链接boost_filesystem

标签: c++ linux boost


【解决方案1】:

试试这个链接中的建议:

Linking boost::filesystem on Ubuntu 13.04

1) 检查你的 boost 库是否包含所需的符号,你可以使用这样的东西:nm -D /usr/lib64/libboost_filesystem.so.1.52.0 | grep detail | c++filt | grep your names

2) 尝试改变链接库的顺序,比如把-lboost_bla-bla-bla放到命令行的最后,再用g++运行这个命令,不要用make什么的,直接复制粘贴命令做实验。

3) 当然,请确保您有一个“libboost_filesystem.XXX”(静态 .a 或共享 .so 库),并确保它在您的“ld”(链接)命令中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多