c++ - 如何在 Linux 上使用 Boost Wave Lib

标签 c++ linux boost

标题

我正在尝试使用 Boost Wave,但我无法使用 boost_1_55_0/lib/wave/samples 中的示例对其进行编译。我使用的系统是Ubuntu 12.04 64位

例如,当我尝试编译 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 是我从 ./b2 build command of boost 中得到的。编译输出是一个超长的结果,结尾为:

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 库.我设法使用正则表达式库构建示例电子邮件提取程序。所以我认为我的 wave 库构建正确。

最佳答案

尝试此链接中的建议:

Linking boost::filesystem on Ubuntu 13.04

1) 检查你的 boost 库是否包含所需的符号,你可以使用这样的东西:nm -D/usr/lib64/libboost_filesystem.so.1.52.0 |详细信息 | C++过滤器 | grep 你的名字

2) 尝试更改链接库的顺序,例如将 -lboost_bla-bla-bla 放在命令行的末尾,然后再次使用 g++ 运行此命令,而不是使用 make 或其他东西,只需复制粘贴命令并用它进行实验。

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

关于c++ - 如何在 Linux 上使用 Boost Wave Lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436515/

相关文章:

linux - 使用 linux 过滤 apache 文件

python - 如何管理部署中的库

c++ - 指向重载类型转换运算符的指针?

c++ - (C++)我正在尝试从文本文件读取和输出随机行,并且在运行它时不断获取 “Floating Point Exception (Core Dumped)”

c++ - 带有 ncurses 的子窗口

linux - 是什么导致了这个错误 : No such file or directory

c++ - 将 boost 与 cmake 相关联的问题

c++ - 在ubuntu上设置boost库的问题

C++ 参数错误

c++取消引用通过引用传递分配的指针,给出随机值