2013-05-03 96 views
0

我对这个问题太好奇了,有时.so链接失败,但是每当我使用静态库(.a)时,它都不会。有人有想法吗?为什么有时用.so文件链接会导致链接器错误?

例如在Linux中,我已经使用libcrypto.a lib,每次编译时都可以。但是libcrypto.so非常不一致。那根本原因是什么?

它显示的错误是:ld: libcrypto.so in wrong file format

+3

除非您给出一个精确的* *具体*例子,否则我们无法猜测。回想一下,'gcc'的参数顺序(实际上是到底层的'ld'链接器)非常重要。 – 2013-05-03 06:37:38

+1

它说'ld:libcrypto.so文件格式错误' – 2013-05-03 06:38:48

+1

然后尝试'file -L/usr/lib/libcrypto.so'或'file -L/usr/lib/x86_64-linux-gnu/libcrypto.so'找出你的'libcrypto.so';在我的Debian/Sid/x86-64上,我得到了'ELF 64位LSB共享对象,x86-64' ...你可能想重新安装提供它的包(在我的Debian上是'libssl-dev') – 2013-05-03 06:42:00

回答

0

确定。解决了它。你是对的@ n.m。您的评论为我工作。

你的专家是错误的。不一致行为的原因可能是硬件损坏。尝试运行memtest86以及文件系统通常使用的任何磁盘检查实用程序。 - 中午

谢谢。

相关问题