看着Qt5.11.0的库(:/Qt/5.11.0/5.11.0/gcc_64/lib/
),我想知道是哪一个正在链接openssl。所以我运行了以下内容:
for lib in `ls *.so`; do ldd $lib | grep ssl; done
我没有任何输出,这表明没有库与openssl链接。但是我认为Qt必须以某种方式与之链接(例如,用于联网)。
链接如何完成?在哪里寻找openssl?我是否有办法知道在系统上找到了哪个Qt(例如,假设我有多个Qt)?
答案 0 :(得分:0)
Qt在运行时动态链接一些库。为了查看加载了哪些库,可以按照Matteo的提示检查动态链接器的诊断输出:
说我的可执行文件称为QGroundcontrol
:
在Linux上:
LD_DEBUG=libs ./QGroundcontrol 2>&1 | grep -E "ssl|crypto"
在macOS上:
DYLD_PRINT_LIBRARIES=1 ./QGroundcontrol 2>&1 | grep -E "ssl|crypto"
由此我可以看到Qt在系统上找到了openssl。
现在,我仍然不知道如何告诉Qt看看其他地方(以防我想链接另一个openssl),但是that's another question。