这几天在想看一些开源项目,如果能用 visual studio 来阅读的话,那就会很优雅。现在的项目很多都已经使用 cmake 作为构建工具,那这里我们要编译的项目是 Triton。
傻逼 c++ 包管理 就是一堆屎 总会出现莫名的 bug 请放弃使用 珍爱生命
vcpkg
vcpkg 使用起来非常方便
下载、编译
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg\vcpkg integrate install
之后安装我们需要的依赖项
.\vcpkg.exe install z3:x64-windows
.\vcpkg.exe install capstone:x64-windows
x64-windows 指的是 vcpkg 的 triplet,这里大概可以理解成平台
vcpkg 支持的平台如下
.\vcpkg.exe help triplet
Available architecture triplets
VCPKG built-in triplets:
arm64-windows
x64-linux
x64-osx
x64-uwp
x64-windows-static
x64-windows
x86-windows
VCPKG community triplets:
arm-ios
arm-linux
arm-mingw-dynamic
arm-mingw-static
arm-windows
arm64-ios
arm64-linux
arm64-mingw-dynamic
arm64-mingw-static
arm64-osx
arm64-uwp
arm64-windows-static
s390x-linux
wasm32-emscripten
x64-ios
x64-mingw-dynamic
x64-mingw-static
x64-osx-dynamic
x64-windows-static-md
x86-ios
x86-mingw-dynamic
x86-mingw-static
x86-uwp
x86-windows-static-md
x86-windows-static
x86-windows-v120
cmake
来到项目下 build 文件夹中
cmake -G "Visual Studio 16 2019" -A x64 "-DCMAKE_TOOLCHAIN_FILE=E:/code/vcpkg/scripts/buildsystems/vcpkg.cmake" ../
会发现报了些错误,大概的意思是 找不到 z3
我们需要修改一下 CMakeList.txt 文件
find_package
find_package 就是查找其他的依赖库,通过 Imported Targets 传递,比如
INTERFACE_INCLUDE_DIRECTORIES, INTERFACE_COMPILE_DEFINITIONS, INTERFACE_COMPILE_OPTIONS, INTERFACE_LINK_LIBRARIES, and INTERFACE_POSITION_INDEPENDENT_CODE
这些变量
搜索路径
vcpkg 设置 CMAKE_PREFIX_PATH ,传递给 find_package
REQUIRED
表明当前 package 是必须的,如果没找到就会给出报错信息,这个选项可以被换成 QUIET
CONFIG
查找并加载以下文件
<PackageName>Config.cmake or <lower-case-package-name>-config.cmake
0 条评论