Visual Studio 如何排除一个特定的库被静态链接?

gopyfrb3  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(124)

我用三重windows-static链接了一些库:

我试图排除一个特定的库(openssl)被静态链接,同时保持所有其他静态。
我四处寻找,找到了这个答案:
如果您想在本地覆盖特定端口的默认链接,您可以将覆盖放入自定义(覆盖)三元组文件中。
但我不知道该怎么做。
此外,这个answer,但微软GitHub中的链接抛出404 - page not found

holgip5t

holgip5t1#

Linux有tutorial。我试过了,但没有在Windows上运行。
但是,我在评论中发布的sample也适用于Visual Studio。
您可以修改文件夹(vcpkg-master\triplets)中的x64-windows-static.cmake文件。
然后删除openssl包并安装vcpkg.exe install openssl --triplet x64-windows-static
它将使用x64-windows-static选项动态链接openssl dll。
cmake文件

set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE static)

if(${PORT} MATCHES "openssl")
    
    set(VCPKG_LIBRARY_LINKAGE dynamic)
else()
    
    set(VCPKG_LIBRARY_LINKAGE static)
endif()

相关问题