VS 代码的优雅解决方案 C/C++ 包括智能感知和构建项目的路径
Elegant solution to VS code C/C++ include path for both intelliSense and building project
如何创建 task.json
和 launch.json
来构建和调试 C/C++ 项目,参数可以从 c_cpp_configuration.json
自动加载?
(include路径、编译器路径等参数)
环境:
windows 10.0.19041
VS Code 1.52.1
VS Code extension: ms-vscode.cpptools 1.2.2
假设我有以下文件结构:
./
|
|--- .vscode/
|
|--- inc/
| |--- header1.h
| |--- header2.h
|
|--- src/
| |--- implementation1.c
| |--- implementation2.c
|
|--- main.c
并且我在全局 settings.json
:
中设置了包含路径
"C_Cpp.default.includePath": ["${workspaceFolder}/inc"],
智能感知工作正常。我可以从main.c
中的参考中找到headers的定义。
而且我知道我可以在没有 vs code 的情况下成功构建项目:
gcc -g .\*.c .\src\*.c -I .\inc
所以,如果我想用 vs 代码构建这个项目,我必须像这样设置 task.json
:
...
"args": [
"-g",
"${workspaceFolder}\*.c", "${workspaceFolder}\src\*.c",
"-I", "${workspaceFolder}\inc",
"-o", "${fileDirname}\${fileBasenameNoExtension}.exe"
]
...
对于智能感知和项目构建工作,我必须在 settings.json
(c_cpp_configuration.json
) 和 task.json
.
配置路径
我想要的是一个优雅的解决方案,我只需为智能感知和项目构建工作设置一次包含路径。可能吗?如果我能在没有额外扩展的情况下解决这个问题,那就太棒了。但是你有一个可以取代 ms-vscode.cpptools
的扩展并完成这个技巧,那也很棒。
我是这样操作的:卸载微软的C/C++扩展并替换为Clangd for code completion and Native Debug进行调试。我对这两个有更好的体验,包括更简单的配置。
Clangd 由一个名为 compile_commands.json
的文件配置,它只是每个源文件的编译器标志列表。
然后,开始使用合适的构建系统。例如,CMake 可以开箱即用地生成此文件。对于 Make,there's a tool 生成它。紧要关头可以自己写。
我建议您使用此扩展程序:
CPH Judge
因为它将清除调试器的所有问题,您可以在输入中直接输入值并获得输出!
优点:
- It has a test case option as we have in online exams, so you can type a and to the test case given in the question and check your answer, accordingly!
- You can run multiple test cases also!!
如何创建 task.json
和 launch.json
来构建和调试 C/C++ 项目,参数可以从 c_cpp_configuration.json
自动加载?
(include路径、编译器路径等参数)
环境:
windows 10.0.19041
VS Code 1.52.1
VS Code extension: ms-vscode.cpptools 1.2.2
假设我有以下文件结构:
./
|
|--- .vscode/
|
|--- inc/
| |--- header1.h
| |--- header2.h
|
|--- src/
| |--- implementation1.c
| |--- implementation2.c
|
|--- main.c
并且我在全局 settings.json
:
"C_Cpp.default.includePath": ["${workspaceFolder}/inc"],
智能感知工作正常。我可以从main.c
中的参考中找到headers的定义。
而且我知道我可以在没有 vs code 的情况下成功构建项目:
gcc -g .\*.c .\src\*.c -I .\inc
所以,如果我想用 vs 代码构建这个项目,我必须像这样设置 task.json
:
...
"args": [
"-g",
"${workspaceFolder}\*.c", "${workspaceFolder}\src\*.c",
"-I", "${workspaceFolder}\inc",
"-o", "${fileDirname}\${fileBasenameNoExtension}.exe"
]
...
对于智能感知和项目构建工作,我必须在 settings.json
(c_cpp_configuration.json
) 和 task.json
.
配置路径
我想要的是一个优雅的解决方案,我只需为智能感知和项目构建工作设置一次包含路径。可能吗?如果我能在没有额外扩展的情况下解决这个问题,那就太棒了。但是你有一个可以取代 ms-vscode.cpptools
的扩展并完成这个技巧,那也很棒。
我是这样操作的:卸载微软的C/C++扩展并替换为Clangd for code completion and Native Debug进行调试。我对这两个有更好的体验,包括更简单的配置。
Clangd 由一个名为 compile_commands.json
的文件配置,它只是每个源文件的编译器标志列表。
然后,开始使用合适的构建系统。例如,CMake 可以开箱即用地生成此文件。对于 Make,there's a tool 生成它。紧要关头可以自己写。
我建议您使用此扩展程序:
CPH Judge
因为它将清除调试器的所有问题,您可以在输入中直接输入值并获得输出!
优点:
- It has a test case option as we have in online exams, so you can type a and to the test case given in the question and check your answer, accordingly!
- You can run multiple test cases also!!