vscode实现第三方包的使用,cmake结合vcpkg(跨平台)
要使用cmake和vcpkg组织一个完整的现代cpp项目,一般来说需要三个文件
vcpkg.json描述第三方依赖项
//vcpkg.json
{"dependencies": ["fmt"]
}//安装,在vcpkg.json目录执行
vcpkg install
CMakePresets.json描述预设,即项目构建的宏观信息,配合CMakeLists.txt描述的具体信息可以进行整个项目的构建
//CMakeLists.txt
{"version": 3,"configurePresets": [{"name": "vcpkg","generator": "MinGW Makefiles","binaryDir": "${sourceDir}/build","cacheVariables": {"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake","VCPKG_TARGET_TRIPLET": "x64-mingw-dynamic"}}]
}//CMakePresets.json
{"version": 3,"configurePresets": [{"name": "vcpkg","generator": "MinGW Makefiles","binaryDir": "${sourceDir}/build","cacheVariables": {"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",//默认可能出错,特别是在有多个编译器的情况下,例如可能存在MSVC和MinGW "VCPKG_TARGET_TRIPLET": "x64-mingw-dynamic"}}]
}
两个文件写完后通过 CMake 项目配置命令,初始化项目的构建环境
// build配置文件地址 ./源代码地址 debug preset的name
cmake -B build -S ./ --preset debug
之后通过build即可完成项目构建!
在整个项目构建时,如果直接使用会报错找不到第三方包,原因是直接编译运行时未像 CMake 那样自动引入第三方库的路径,需要额外配置.vscode
由于cmake具有跨平台性,所以一般项目采用cmake+vcpkg是很好的方案!