【问题标题】:Intellisense: command-line error: invalid macro definitionIntellisense:命令行错误:无效的宏定义
【发布时间】:2016-01-05 06:12:28
【问题描述】:

我在智能感知方面遇到问题:

IntelliSense:命令行错误:无效的宏定义: _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT =1 d:\Bharat\Max\CreateMatFile\createMatFile3\createMatFile3\createMatFile3.cpp

在我的 Visual Studio 2012 for c++ 项目中。任何人都可以帮助我解决这个问题,我们将不胜感激。

【问题讨论】:

  • 尝试删除=1之前的空格。
  • 如何编辑。在属性->配置属性->c/c++->命令行中似乎是只读的。
  • 这与您在问题中所说的不同。根据您的问题,我认为您在 .cpp 文件中定义了该宏。

标签: c++ visual-studio macros


【解决方案1】:

我遇到了同样的问题,我设法删除了“=1”之前的空格,如下所示:

  1. 转到“物业管理器”:在菜单中选择“查看”->“物业管理器”
  2. 导航到适当的解决方案和平台(例如“Release | x64”)并展开它以查看属性表
  3. 现在在这些属性表中搜索错误的预处理器设置,如下所示:
  4. 右键单击属性表并选择“属性”
  5. 进行预处理器设置:“通用属性”->“C/C++”->“预处理器”
  6. 删除错放的空格

在我的配置中,这些属性表之一的预处理器设置错误,带有额外的空格“=1”。 我修复了它,然后智能感知再次起作用了!

【讨论】:

    【解决方案2】:

    如果出现错误信息

    e0992 command-line error: invalid macro definition: _m_cee=001
    

    问题已通过以下方式解决:

    1. 在“解决方案资源管理器”中右键单击目标项目并选择“属性”
    2. 转到“配置属性”->“C/C++”->“命令行”部分
    3. 在附加参数中添加选项“/Zc:twoPhase-”
    4. 应用并重建项目。

    查看构建日志文件 $(IntDir)$(MSBuildProjectName).log 也会有所帮助 (名称可以在“General”->“Build Log File”配置部分重新定义)

    PS:如果使用 C++/CLI

    【讨论】:

    • 我在这里添加了这个描述,因为寻找这个问题的解决方案让我参考这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2018-12-07
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多