compilation - 共享对象编译错误

标签 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): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/ssl/lib/libcrypto.a: could not read symbols: Bad value

最佳答案

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

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

关于compilation - 共享对象编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165209/

相关文章:

c++ - Automake : what are the valid values for *_la_LDFLAGS in Makefile. 上午?

c++ - 在共享库中使用 C++ 中的外部变量 - 使用 MinGW g++ 创建共享库 (dll)

C++编译文件

linux - 为 ARM 交叉编译时共享对象导入错误

ubuntu - 编译caffe : libpng and libgfortran not found,共享库时出现ld错误

android - 如何在库中使用 android 数据绑定(bind)

matlab - 无源码matlab函数分发

c++ - 不止一个重载函数实例

c++ - 在 C++ 中为派生类定义问题

compilation - buildroot 不考虑配置更改