在qmake项目中链接SRT库

问题描述 投票:0回答:2

我想将 SRT 库链接到我的 Windows 机器上的 qmake 项目中。

我从https://github.com/Haivision/srt/releases/download/v1.5.1/libsrt-1.5.1-win-installer.zip安装了SRT v1.5.1。

在我的 .pri 文件中,我有:

LIBS += "-LC:\Program Files (x86)\libsrt\lib\Debug-x64" -llibcrypto
LIBS += "-LC:\Program Files (x86)\libsrt\lib\Debug-x64" -lsrt

我收到以下错误:

srt.lib(api.obj) : error LNK2001: unresolved external symbol in6addr_any
srt.lib(channel.obj) : error LNK2019: unresolved external symbol __std_find_trivial_4 referenced in function "int const * __cdecl __std_find_trivial<int const ,int>(int const *,int const *,int)" (??$__std_find_trivial@$$CBHH@@YAPEBHPEBH0H@Z)
srt.lib(socketconfig.obj) : error LNK2001: unresolved external symbol __std_find_trivial_4
libcrypto.lib(libcrypto-lib-cryptlib.obj) : error LNK2019: unresolved external symbol __imp_GetProcessWindowStation referenced in function OPENSSL_isservice
libcrypto.lib(libcrypto-lib-cryptlib.obj) : error LNK2019: unresolved external symbol __imp_GetUserObjectInformationW referenced in function OPENSSL_isservice
libcrypto.lib(libcrypto-lib-cryptlib.obj) : error LNK2019: unresolved external symbol __imp_MessageBoxW referenced in function OPENSSL_showfatal

我有点相信我缺少DLL,因为在安装libsrt-1.5.1-win-installer.zip后,C:\Program Files (x86)\libsrt\lib\Debug-x64中没有任何DLL,但我不知道当安装程序未提供它们时从哪里获取它们(该目录中只有 libcrypto.lib、libssl.lib 和 srt.lib)。可能是什么问题?

windows openssl static-linking dynamic-linking
2个回答
0
投票

您很有可能正在链接使用不同平台工具集构建的库。例如,您的解决方案是在 VS 2019(工具集 v142)中构建的,但第 3 方 libstr 是使用 VS 2022(工具集 v143)构建的。


0
投票

我也遇到了同样的问题,我意识到

Libcrypto_static.lib
尝试包含来自Windows的user32.lib,以便解决此错误:

  1. 如果您使用的是 microsoft Visual Studio,请确保将
    %(AdditionalDependencies)
    micro 保留在最后一行:项目属性 -> 链接器 -> 输入 -> 其他依赖项
  2. 另一方面,如果您尝试使用命令行来编译代码,请确保在包含中添加
    User32.lib
© www.soinside.com 2019 - 2024. All rights reserved.