【问题标题】:shared object compilation error共享对象编译错误
【发布时间】:2013-04-16 10:09:34
【问题描述】:

我正在尝试编译库 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 反对 `a local symbol' 在制作共享对象时不能使用;使用 -fPIC 重新编译 /usr/local/ssl/lib/libcrypto.a:无法读取符号:错误值

【问题讨论】:

    标签: compilation shared-libraries shared


    【解决方案1】:

    它告诉你 libcrypto.a 不是用 fPIC 编译的。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 2019-12-02
      • 2018-07-05
      相关资源
      最近更新 更多