如何在Linux上使用Boost Wave Lib

时间:2014-08-21 21:48:28

标签: 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构建的推荐中获得的。编译输出是超长结果,结尾为:

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*)':

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

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

1 个答案:

答案 0 :(得分: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" (链接)命令。