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

Kam*_*iel 9 c++ intellisense visual-studio-code

使用"Default"智能感知引擎时,我的C ++项目中的某些符号无法解析。事实证明,这是因为它们位于标头中,并在其中受到由makefile #ifdef传递给带有-D标志的gcc的宏的保护。我如何才能告诉智能感知引擎这些定义,以便它能够编译标头的那些部分?

jws*_*jws 9

项目makefile defines在中设置.vscode/c_cpp_properties.json

"configurations": [
{
   ...
   "defines":[
       "MYSYMBOL",
       "MYVALUE=1"
   ]
}
], ...
Run Code Online (Sandbox Code Playgroud)

以下是一些打开方法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

  • 在较新版本的 VSCode 中:文件->首选项->设置->(搜索右侧面板)c_cpp > 默认值:定义 (2认同)

Dan*_*iel 1

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

您可以在 c_cpp_properties.json 文件中设置“defines”