vcpkg使用
# 下载vcpkg项目
git clone https://github.com/Microsoft/vcpkg
# 本地编译
bootstrap-vcpkg.bat
# 搜索想要安装的包
vcpkg search curl
# 安装指定的包,curl包分号后面的表示架构,可用的值为之前列出的那些。
vcpkg install curl:x64-windows
# 列出已经安装的包
vcpkg list
# 已安装的包更新
vcpkg upgrade
# 删除已安装的包
vcpkg remove curl:x64-windows
visual studio 2017中使用vcpkg安装的包
要在visual studio 2017中正确使用已安装的包,需要将头文件目录和相关的库在正确的设置。方便的是,vcpkg提供了直接的配置命令。
# 为每一个用户设置
vcpkg integrate install
# 为当前项目配置,这里需要在该项目的目录下拥有一份vcpkg的拷贝
vcpkg integrate project
正确配置之后,不用做任何项目的其它设置,可以直接在项目中使用,效果如下图。
vcpkg使用中的常见问题
- vcpkg和cmake合作使用时,明明CMakefile编写正确,但是却一直找不到第三方引用呢?
——面对这种情况需要从以下几个方面去排查。第一,CMAKE_TOOLCHAIN_FILE是否设置为了vcpkg.cmake文件路径了?如果设置了的话,是否是在project()命令之前,因为如果在project命令之后的话就无效了。第二,对vcpkg.cmake预设好的变量是否进行了覆盖操作?我之前就放过错误,将vcpkg.cmake中预设的变量CMAKE_PREFIX_PATH覆盖,结果导致无法引入第三方包的问题
https://my.oschina.net/taodf/blog/1921824
vcpkg装bullet3之后
装成功的样子:
gyh@gyh-W65KJ1-KK1:~$ vcpkg install bullet3
Computing installation plan...
The following packages will be built and installed:
bullet3[core]:x64-linux
Starting package 1/1: bullet3:x64-linux
Building package bullet3[core]:x64-linux...
-- Downloading https://github.com/bulletphysics/bullet3/archive/2.89.tar.gz...
-- Extracting source /home/gyh/vcpkg/downloads/bulletphysics-bullet3-2.89.tar.gz
-- Applying patch cmake-fix.patch
-- Using source at /home/gyh/vcpkg/buildtrees/bullet3/src/2.89-eb26871ed5
-- Configuring x64-linux-dbg
-- Configuring x64-linux-rel
-- Building x64-linux-dbg
-- Building x64-linux-rel
-- Installing: /home/gyh/vcpkg/packages/bullet3_x64-linux/share/bullet3/copyright
-- Performing post-build validation
-- Performing post-build validation done
Building package bullet3[core]:x64-linux... done
Installing package bullet3[core]:x64-linux...
Installing package bullet3[core]:x64-linux... done
Elapsed time for package bullet3:x64-linux: 12.44 min
Total elapsed time: 12.44 min
The package bullet3:x64-linux provides CMake targets:
find_package(bullet3 CONFIG REQUIRED)
# Note: 2 target(s) were omitted.
target_link_libraries(main PRIVATE LinearMath Bullet3Common BulletDynamics BulletSoftBody)
最后这三行应该有点用,记录一下