我想将 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)。可能是什么问题?
您很有可能正在链接使用不同平台工具集构建的库。例如,您的解决方案是在 VS 2019(工具集 v142)中构建的,但第 3 方 libstr 是使用 VS 2022(工具集 v143)构建的。
我也遇到了同样的问题,我意识到
Libcrypto_static.lib
尝试包含来自Windows的user32.lib,以便解决此错误:
%(AdditionalDependencies)
micro 保留在最后一行:项目属性 -> 链接器 -> 输入 -> 其他依赖项User32.lib
。