vcpkg 作为子模块使用

vcpkg 作为子模块使用

创建一个项目demo

在项目下创建文件夹vcpkg
clone vcpkg项目到vcpkg文件夹下,并编译

Windows安装:

需求:
Windows 7 或更新的版本
Git
Visual Studio 2015 Update 3 或更新的版本(包含英文语言包)

从Github上克隆Vcpkg仓库然后执行安装命令即可:

	git clone https://github.com/microsoft/vcpkg
	.\vcpkg\bootstrap-vcpkg.bat
### Linux安装:
需求:
	Git
	g++ >= 6
从Github上克隆Vcpkg仓库然后执行安装命令即可:

```powershell
	 git clone https://github.com/microsoft/vcpkg
	 ./vcpkg/bootstrap-vcpkg.sh

配置自定义文件

  1. 在第一个 project() 调用之前将以下内容添加到 CMakeLists.txt 中
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake
  CACHE STRING "Vcpkg toolchain file")
  1. 在CMakeLists.txt所在目录创建vcpkg.json
{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
  "name": "xtcs",
  "dependencies": [
    {
      "name": "geos",
	  "version>=": "3.11.2"
  
    }
  ],
  "overrides": [
    {
      "name": "geos",
      "version": "3.11.2"
    }
  ],
  "builtin-baseline": "d765306b074717dea8dc1c4723e1b025acb61c2d"

  
}

  1. 在CMakeLists.txt所在目录创建vcpkg-configuration.json
{
	"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
    "overlay-triplets": [ "./my_triplets" ]
}
  1. 在vcpkg安装目录创建my_triplets文件夹及自定义的triplet文件 “x64-windows-mingw.cmake”
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_CMAKE_SYSTEM_NAME WINDOWS)
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/my_triplets/toolchains/my_mingw810-64-Qt.cmake)
  1. **在my_triplets文件夹下创建toolchains文件夹并创建工具链文件my_mingw810-64-Qt.cmake **
SET(CMAKE_C_COMPILER   C:/QT/TOOLs/mingw810_64/bin/gcc.exe)
SET(CMAKE_CXX_COMPILER C:/QT/TOOLs/mingw810_64/bin/g++.exe)

.\vcpkg.exe install --clean-after-build --triplet=x64-windows-mingw-xtcs

4-5步目前配置成功,但是windows指定编译器无法编译通过。不指定VCPKG_CHAINLOAD_TOOLCHAIN_FILE 正常

参数说明
VCPKG_TARGET_ARCHITECTURE指定目标计算机体系结构。有效选项为 x86、x64、 armarm64 和 wasm32
VCPKG_CRT_LINKAGE指定链接所需的 CRT(仅MSVC) 有效选项为 dynamic 和 static
VCPKG_LIBRARY_LINKAGE指定首选库链接。有效选项为 dynamic 和 static。 如果库不支持首选链接类型,则可以忽略此设置。
VCPKG_BUILD_TYPE可以将此值设置为 release ,以便仅生成端口的发布版本。 默认情况下,此值为空,并且会生成端口的发布和调试版本。
VCPKG_CMAKE_SYSTEM_NAME指定目标平台。有效选项包括任何 CMake 系统名称,例如:Windows 桌面为空(历史原因); WindowsStore (通用 Windows 平台); MinGW (Minimalist GNU 适用于 Windows); Darwin (Mac OSX) ;iOS (iOS);Linux (Linux);Emscripten (WebAssembly)
VCPKG_CMAKE_SYSTEM_VERSION指定目标平台系统版本,此字段是可选的,如果存在,将作为 CMAKE_SYSTEM_VERSION传递
VCPKG_CHAINLOAD_TOOLCHAIN_FILE指定要使用的备用 CMake 工具链文件。此 (如果设置) 将替代所有其他编译器检测逻辑。 默认情况下,会根据 scripts/toolchains/ 平台选择工具链文件
VCPKG_CXX_FLAGS设置不使用 VCPKG_CHAINLOAD_TOOLCHAIN_FILE时要使用的其他编译器标志。此选项还包含特定于配置的表单和 C 标志:VCPKG_CXX_FLAGS; VCPKG_CXX_FLAGS_DEBUG;VCPKG_CXX_FLAGS_RELEASE;VCPKG_C_FLAGS;VCPKG_C_FLAGS_DEBUG;VCPKG_C_FLAGS_RELEASE
VCPKG_LINKER_FLAGS设置在没有 VCPKG_CHAINLOAD_TOOLCHAIN_FILE的情况下生成动态库和可执行文件时要使用的其他链接器标志。
此选项还包含特定于配置的标志的表单:VCPKG_LINKER_FLAGS; VCPKG_LINKER_FLAGS_DEBUG; VCPKG_LINKER_FLAGS_RELEASE
  1. 使用 --overlay-triplets 生成动态库
    –overlay-triplets使用 选项在 custom-triplets目录中包括triplet文件 “x64-windows-mingw.cmake”。
vcpkg/vcpkg.exe install sqlite3:x64-linux-mingw --overlay-triplets=custom-triplets
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值