共享对象编译错误

时间:2013-04-23 09:01:29

标签: compilation shared-libraries shared

我正在尝试编译库libEncryption.so。

以下是我的make文件中的内容:

cc -g -w -fPIC  -c -ISource/Header -I//usr/local/ssl/include -L//usr/local/ssl/lib -     lssl -lcrypto Source/Common/C/Encryption.c -DBIT64 -DDBG -DLITTLEENDIAN -DOMS -DRMS
mv Encryption.o Objects/Encryption.o
ld -fPIC -G  Objects/Encryption.o  -L/usr/local/ssl/lib -lssl -lcrypto -o   libEncryption.so

在运行此操作时,我一直收到以下错误

  

ld:/usr/local/ssl/lib/libcrypto.a(sha1dgst.o):在创建共享对象时,不能使用针对“本地符号”的重定位R_X86_64_32;用-fPIC重新编译   /usr/local/ssl/lib/libcrypto.a:无法读取符号:错误值

1 个答案:

答案 0 :(得分:2)

它告诉你libcrypto.a没有用fPIC编译。

你应该使用-fPIC重建它,或者在编译你的东西时放弃使用-fPIC