【问题标题】:Compiliation errors on boost files启动文件的编译错误
【发布时间】:2009-08-14 18:56:21
【问题描述】:

我在使用 boost 库编译代码时遇到很多错误,主要是在我使用 Spirit 命名空间时。这些错误是 boost 文件上的语法错误,例如:

boost/spirit/home/classic/dynamic/lazy.hpp(33):错误 C2143:语法错误:缺少 ';'在'之前

boost/spirit/home/classic/dynamic/lazy.hpp(33):错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int

boost/spirit/home/classic/utility/grammar_def.hpp(104) : 错误 C2039: 'nil_t' : 不是 'boost::phoenix'的成员

我正在从 Visual Studio 6 迁移到 Visual Studio 2008 Express,并从最古老的 boost 版本之一迁移到最新版本。

我想知道有什么问题。我认为问题不可能出在 boost 库中。

【问题讨论】:

  • 您是否在任何地方使用了任何会影响 boost 编译方式的#defines?

标签: c++ visual-studio-2008 boost boost-spirit boost-phoenix


【解决方案1】:

我的猜测和 Timi Geusch 一样,是错误的#define。

我从来没有使用过 VS,但是如果有一个选项可以在代码通过预处理器后查看代码,您也许能够找出导致问题的原因。

【讨论】:

  • VS CL.exe 编译器具有 /E 和 /P 标志,它们分别将处理后的输出生成到标准输出和文件。
  • 我真的不知道可以定义什么。这是一个大代码。有什么想法吗?
【解决方案2】:

问题已解决,只包含phoenix1旧版本的phoenix。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 2012-10-31
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2013-09-26
    相关资源
    最近更新 更多