首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为C++智能感知引擎定义宏?

如何为C++智能感知引擎定义宏?
EN

Stack Overflow用户
提问于 2017-09-25 22:23:07
回答 4查看 38.7K关注 0票数 42

当使用"Default"智能感知引擎时,我的C++项目中的一些符号无法解析。事实证明,这是因为它们在标题中,它们由一个#ifdef保护,它依赖于通过makefile传递给gcc的带有-D标志的宏。我如何告诉intellisense引擎关于这些定义,以便它能够编译这些部分的标题?

EN

回答 4

Stack Overflow用户

发布于 2019-05-06 15:59:57

Project defines.vscode/c_cpp_properties.json中设置。

代码语言:javascript
复制
"configurations": [
{
   ...
   "defines":[
       "MYSYMBOL",
       "MYVALUE=1"
   ]
}
], ...

下面是一些打开c_cpp_properties.json的方法

  1. 在Intellisense无法解决的include语句上找到绿色切换。在周围盘旋,点击出现的灯泡(这是很小,有点游戏点击)。它将在编辑器中打开项目配置文件。
  2. 和上面一样,但是把光标放在绿色的拨动线上,然后按Ctrl+.
  3. 使用托盘命令:ctrl+shift+P,,然后选择C/C++: Edit configurations (JSON)
  4. 如果文件已经存在于您的.vscode文件夹中,请使用File->Open打开它。

尽管vscode将在修改c_cpp_properties.json后重新处理设置,但我发现在更改值时有时需要重新启动。

这里有基本的和不完整的信息:https://code.visualstudio.com/docs/languages/cpp

这是关于c_cpp_properties.json文件本身的很好的链接:https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference

票数 68
EN

Stack Overflow用户

发布于 2020-01-06 20:38:38

到目前为止,其他的答案有两个似乎并不容易解决的问题:

  1. 有时,不同的源文件需要不同的编译器标志。
  2. 手动找出哪些编译器标志是必需的,并手动添加它们,这可能是痛苦乏味的。

幸运的是,VS代码的C/C++扩展支持compile_commands.json数据库。这将存储特定于每个单独源文件的信息,包括定义、包含目录和其他编译器命令行标志。我刚刚发布了一个更详细的描述,说明如何生成一个,并让VS代码在这里使用:https://stackoverflow.com/a/59618515/12663912

票数 2
EN

Stack Overflow用户

发布于 2018-04-21 20:57:21

现在添加了此功能:https://github.com/Microsoft/vscode-cpptools/issues/304

您可以在c_cpp_properties.json文件中设置“定义”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46415076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档