背景

C++写的小工具(源代码)用了libcurl库,开发时用vcpkg管理的第三方库,默认是动态链接库,发布给他人使用时还得把libcurl.dll和zlib1.dll文件一起发布,太麻烦了,搜索了一通,找到了vcpkg静态链接库的方法。

方法

我的环境:windows10 + VS2019 + vcpkg。

vcpkg安装时带上static,如下所示,

vcpkg install curl:x64-windows-static

项目下PROJECTNAME.vcxproj文件在<PropertyGroup Label="Globals">...</PropertyGroup>标签中添加以下内容。

<VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-static</VcpkgTriplet> <VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-static</VcpkgTriplet>

项目单击右键,属性–链接器–输入–附加依赖项,添加以下依赖,libcurl依赖项可以从源码包的winbuild/README.md文件查看。

advapi32.lib;crypt32.lib;normaliz.lib;ws2_32.lib;wldap32.lib

参考

https://devblogs.microsoft.com/cppblog/vcpkg-updates-static-linking-is-now-available/

https://stackoverflow.com/questions/58506430/how-to-statically-link-vcpkg-produced-lib-file-in-visual-studio

https://www.youtube.com/watch?v=9TNPhanYbrA