gpt4 book ai didi

linux - ld 找不到文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:49 26 4
gpt4 key购买 nike

我在 RedHat 系统上工作。

uname -m 
x86_64

所有库都是 32 位的。

/usr/bin/ld lib/libssh2.so
lib/libssh2.so could not read symbols: File in wrong format

file lib/libssh2.so
lib/libssh2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

编译时出现错误:

usr/bin/ld: cannot find -lssh2
collect2: ld returned 1 exit status

编译命令:

g++ src/Testcase.o src/Test.o -L../testcase/lib -L/usr/lib -L/usr/lib \
-lcrypto -lz -lpthread -lssl -lcurl -lssh2 -o ./debug/testcase

最佳答案

有两个错误。

第一个说 libssh2.so 是一个 32 位共享库,但您在 64 位平台上链接。在 64 位平台上,它通常默认链接到 64 位对象。将 -m32 开关添加到编译和链接命令行,以在 32 位模式下构建和链接。

第二个是链接器找不到-lssh2。在这种情况下,您需要指定查找 -lssh2 的目录,例如-L/usr/local/lib -lssh2

关于linux - ld 找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com