找不到共享库

时间:2011-05-07 19:29:38

标签: c shared-libraries

我正在运行Ubuntu 10.10和一个使用共享库libcrypto.so的C程序 在编译它时,虽然我有一个包含-lcrypto选项的Makefile,但是我收到了这条消息:

/usr/bin/ld: skipping incompatible ./libcrypto.so when searching for -lcrypto
/usr/bin/ld: cannot find -lcrypto

我之前通过执行以下操作导出了当前目录:

export LD_LIBRARY_PATH=D_LIBRARY_PATH:.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

那么我的图书馆有什么问题,我该怎么办?

2 个答案:

答案 0 :(得分:2)

你能发布一下这个输出:

$ file ./libcrypto.so

并确认它是适合您机器的版本? (即32比64比特等?)

答案 1 :(得分:2)

第一条错误消息可能表示您有一个64位库,但正在进行32位编译,或者正在进行32位编译,但正在进行64位编译。

运行file libcrypto.so以查看其类型,然后使用选项“-m32”或“-m64”调整构建(重新启动 - 删除所有目标文件)以获取写入构建模式。如果您无法确定如何将其纳入makefile,请使用:

make CC="gcc -m32" CXX="g++ -m32"

(或64位版本,如果你正在追求的那样)。