无法建立Boost Wave示例

时间:2018-07-29 14:58:17

标签: c++ boost

这些是我(许多步骤中的一个)步骤,目的是构建 list_includes 示例,导致无处可做:

  1. 从官方网站上下载最新的Boost(当前是1.67.0,但我也尝试过1.66.0),并将其解压缩
  2. $ ./bootstrap.sh

  3. $ ./b2 --with-wave --with-program_options --with-filesystem --with-system --with-thread --with-date_time

    我从构建目录内的Jamfile中获取了这些依赖项

  4. $ ./b2安装

  5. $ cd libs / wave / samples / list_includes / build

    仅用于演示路径

  6. $ ../../../../../ b2

  1. $ cd libs / wave / samples / list_includes
  2. $ g ++ -o list_includes list_includes.cpp -lboost_wave -lboost_program_options -lboost_filesystem -lboost_system -lboost_thread -lboost_date_time

无论我怎么做,我都能做到这一点(为了便于阅读,省略了模板参数):

  

对`boost :: wave :: cpplexer :: lexertl :: new_lexer_gen <> :: new_lexer(__ gnu_cxx :: __ normal_iterator <> const&,__gnu_cxx :: __ normal_iterator <> const&,boost :: wave :: util:的未定义引用:file_position <> const&,boost :: wave :: language_support)'       collect2:错误:ld返回1退出状态

现在我不明白为什么它抱怨cpplexer,因为它是库本身的一部分-库是在命令行中构建和指定的!感谢您的帮助/咨询。

更新:一个一般问题的重复吗?我知道我可能会错过一些东西,我想问的是什么,因为我根据官方手册使用了官方构建文件,感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:1)

解决了这个噩梦...叛徒是lexertl_interface.hpp

在其中插入以下内容:#include <boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp>

并更改第70-71行:

  

返回new_lexer_gen :: new_lexer(first,last,pos,language);

收件人:

  

return boost :: wave :: cpplexer :: new_lexer_gen :: new_lexer(first,last,pos,language);