这个答案可能无法完全满足您的需求,但希望它可以帮助您设置 VS Code 环境。
在您的问题标题中,您提到“Makefile 项目”,这表明您有错误的印象,认为 (GNU) Makefile 以类似于 Visual Studio 项目文件的方式捕获项目设置。 Makefiles 不会像那样工作,你的问题的简短答案是不,似乎没有办法将 Makefiles“导入”到 VS Code 并让它自动在你的文件中设置值c_cpp_properties.json
file.
话虽如此,还有一些其他机制可以帮助您在您的情况下开始使用 VS Code,具体取决于您工具链中的其他元素。
VS Code 工作的前提是它打开文件系统中的一个或多个目录。当您这样做时,它将自动扫描其所有子目录,显示树并执行 linting(如果启用)以检测问题。事实上,包含目录需要手动添加到您的c_cpp_properties.json
文件,但要将所有子目录递归添加到包含目录列表中,您可以使用表达式
"${workspaceRoot}/**"
作为你的元素之一includePath
环境。请参阅博客文章Visual Studio Code C/C++ 扩展 2018 年 5 月更新 – IntelliSense 配置变得如此简单! https://blogs.msdn.microsoft.com/vcblog/2018/05/08/visual-studio-code-cc-extension-may-2018-update-intellisense-configuration-just-got-so-much-easier/更多细节。这通常可以解决许多缺失的符号。如果您也使用外部或第三方库,那么您必须将它们添加到您的includePath
手动设置,没有办法解决。
此外,您可以创建 VS Code 任务来执行您的make
根据您的喜好进行命令。这里解释一下:通过任务与外部工具集成 https://code.visualstudio.com/docs/editor/tasks. The 微软 C/C++ 扩展 https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools附带一组所谓的问题匹配器,它们解析命令的输出,并可以为某些已知的编译器解释该输出。您将看到错误和警告的超链接,以直接导航到代码中的关联位置。
此类任务的示例可能如下所示:
{
"label": "Build All Debug",
"type": "shell",
"command": "make -f path/to/Makefile DEBUG=1",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": [
"$gcc"
]
}