例如,我使用 VCPKG 构建第三方库,例如 libcurl。我有动态和静态构建。显然,import .lib 和 object .lib 文件分别包含在两个不同的文件夹中,x64-windows 和 x64-windows-static。我想将对象 libcurl.lib 与我的程序静态链接,但无法弄清楚如何配置 Visual Studio 来做到这一点。它总是最终使用导入库,而不是对象库,因此我的程序最终在执行时需要 libcurl.dll。
我已将主项目配置为使用 /MT 运行时库。我尝试将链接器配置为使用指向静态库文件夹和其他依赖项的其他库文件夹。我什至尝试在链接器附加依赖项中使用对象 libcurl.lib 文件的完整路径。
当我使用 /MT 切换运行时库时,我可以使用 Dependency Walker 来判断所有常规库(如 vcruntime)都集成在可执行文件中,而不是作为 DLL 加载,但 libucurl.dll 仍然存在,动态加载。
似乎由于 VCPKG 自动包含路径集成,Visual Studio 总是首先找到并使用导入 libcurl.lib,即使我在链接器输入中指定了对象 libcurl.lib 的完整路径。
如何配置 Visual Studio 以静态链接正确的 .lib 文件?