vcpkg:如果集成到全局,不需要再vscode中进行任何设置,就可以自动找到头文件并链接库,如果不集成到全局,则需要进行以下操作:
cmake:如果安装了cmake-gui,vscode会默认调用安装的cmake版本,而不会使用插件中的cmake,如果安装的版本低于3.20,会出现无法使用toolchain的错误,建议卸载cmake-gui,使用vscode自带的插件
vscode:其实不需要更改c_cpp设置,也不需要更改CMakeLists.txt,只需要在settings.json中增加
"cmake.configureSettings": {
"CMAKE_TOOLCHAIN_FILE": "C:/vcpkg/scripts/buildsystems/vcpkg.cmake"
}
eigen3:不知为何,在不集成vcpkg到全局的情况下,不能使用以下头文件包含路径
#include<eigin3/Eigen/Core>
#include<eigin3/Eigen/Dense>
必须改为
#include<Eigen/Core>
#include<Eigen/Dense>
推测是vcpkg把EIGEN3_INCLUDE_DIR写死了
另外,vs code中不能在上方调试运行(走的是vscode自己的调试运行,需要配置tasks.json,lauch.json),而要在下方的cmake栏中调试和运行(走的是cmake)
总结
使用vcpkg+vscode在windows下开发还是挺方便的,只需要在settings中增加cmake toolchain file为vcpkg即可,不需要集成vcpkg到全局,另外需要注意cmake版本,以及可能的库路径问题