我正在运行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:.
那么我的图书馆有什么问题,我该怎么办?
答案 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位版本,如果你正在追求的那样)。