Windows 下使用 vcpkg + CMake 进行开发
vcpkg
vcpkg 是一款开源的、基于源代码的 C++ 依赖管理器。简单地说,用户可以使用 vcpkg 安装自己需要的 C++ 依赖。
将 vcpkg 的整个仓库克隆在本地,再执行提供的脚本,即可完成 vcpkg 的部署,详情参见 vcpkg 仓库的 README 或 网站上的说明材料。
无论是 vcpkg 还是之后安装软件包的代码,很多都是从 GitHub 取得的,因此可能需要用户具有相应的网络访问环境。
一般,每月只需要两瓶矿泉水钱,就能买到可以用的代理。
笔者实验时,vcpkg 会自动使用系统代理(如果进行了相应的配置),但执行
git clone
可能需要在终端中手动设置 HTTP 和 HTTPS 代理服务器地址相关的环境变量。
vcpkg 的若干实例是互不影响的。可以在计算机上部署多个 vcpkg 的实例。
针对其这个特性,用户可以切换到 vcpkg 的目录下再执行命令,而不是将 vcpkg 可执行文件的路径添加到 PATH。
由于 vcpkg 是基于源代码的,因此在安装软件包之前,需要用户先安装微软的编译器 MSVC。除此之外,还需要额外安装 Visual Studio 的英语(English)语言包,才能顺利执行安装操作。
也可以使用 MSYS2 作为开发环境使用 vcpkg,但是笔者暂未实验,故不作展开。
以安装 OpenCV 为例
以安装 OpenCV 为例,用户在终端中切换到 vcpkg 的安装目录后,执行下面命令即可安装 OpenCV:
PS> ./vcpkg install opencv
需要注意,对于 OpenCV 以及其他一些包,vcpkg 在安装时有不同的 feature 可供选择。可以在 vcpkg 网站上检索包对应的信息,或者使用 ./vcpkg search <packagename>
进行检索。
比如,我们可以执行下面的命令,选择需要的 feature 并进行安装:
PS> ./vcpkg install opencv[core,dnn,jpeg,png,quirc,tiff,webp]
之后便会开始相对比较漫长的代码编译过程,可能会耗费约数十分钟或更久。同样,建议将 vcpkg 的目录添加进反病毒软件的排除项,可以加快速度。
除此