通过 “vcpkg” 源代码包管理器适用 VC++ 201720192022 编译程序一个小问题

通过 “vcpkg” 源代码包管理器适用 VC++ 201720192022 编译程序一个小问题,第1张

通过 “vcpkg” 编译库程序默认情况下DLL会依赖 vcruntime140.dll 动态链接库文件,如果可以MT静态编译代码出来只有一个独立EXE程序文件的情况,是不需要的复制这个DLL文件的,如果生成出来带了一些DLL文件,那么最好就CHECK一下这些DLL文件的DLL导入依赖清单,如果不依赖任何文件还好,如果依赖了其它DLL文件就逐个排查需要包含那些DLL到程序目录下面。

检索DLL库导入DLL库依赖可以使用工具:

1、dumpbin /dependents

2、PE ExplorerDependency Walker

3、Dependency WalkerDependency Walkerendency WalkerDependency WalkerDependency

例如,vcpkg install boost:x86-windows,那么关联编译的 openssl 1.1.1? 库程序就是非静态的会依赖 vcruntime140.dll CRT运行库。

如果 vcpkg install boost:x86-windows-static,那么关联编译的 openssl 1.1.1?库程序就是可以被静态编译的。

但是,vcpkg 编译为静态模式,Visual Studio 里面是没有办法找到头文件跟库文件的,这个就需要人们手动去配工程属性,Include/Libraries 目录寻址,但有个缺点是不要有 “x86-windows、x64-windows” 的 vcpkg 编译安装记录,否则可能程序编译过程出现混乱,当然,这是建立在 vcpkg 执行过CLI命令行指令 “vcpkg integrate install”。

当然,个人的建议是不要使用这种偷懒式的方法,“vcpkg integrate project” 或者手动配置工程代码 Include/Libraries 目录寻址会是个好办法。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/798778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存