包管理工具vcpkg

在windows上的包管理工具vcpkg,还有个conan还没试过

1、下载https://github.com/microsoft/vcpkg的安装包
2、点击运行bootstrap-vcpkg.bat生成exe
3、在visual studio 2017 for x64的命令窗口中进入vcpkg目录,输入vcpkg install XX:x64-windows 

以安装文字识别库tesseract的经历为例

vcpkg install tesseract:x64-windows

在安装过程中会出现问题,提示openssl的安装出错,经过各种实验后包括直接

perl Configure VC-WIN64A no-asm --perx="安装地址"
nmake
nmake install

可行,发现主要是no-asm的原因,所以在openssl的camke中加入一句话

E:\tools\vcpkg-master\ports\openssl\windows\portfile.cmake
if(VCPKG_TARGET_IS_UWP)
    vcpkg_list(APPEND CONFIGURE_OPTIONS
        no-unit-test
        no-asm
        no-uplink
    )
    string(APPEND OPENSSL_ARCH "-UWP")
endif()

if(VCPKG_CONCURRENCY GREATER "1")
    vcpkg_list(APPEND CONFIGURE_OPTIONS no-makedepend)
endif()
# 加的那句话
vcpkg_list(APPEND CONFIGURE_OPTIONS no-asm no-uplink)

openssl顺利编译完成,tesseract也完成

在此过程中还有一些发现

在vs2022的安装过程中也会带一个vcpkg.exe但是和我们这个不一样。需要在使用指令时手动选择我们下的exe调用

在安装过程中vcpkg会在downloads中的tool下下载需要的一些工具,比如perl、nmake等,这和我们环境变量中的不冲突。vcpkg会优先使用自己下载的

Table of Contents