使用'shared'选项编译OpenSSL?

Pet*_*ean 26 apache openssl

在CentOS 5.4上,OpenSSL在没有"共享"选项的情况下编译得很好.但是当我通过该选项时,编译失败了:

/ usr/bin/ld:libcrypto.a(x86_64-gcc.o):在创建共享对象时,不能使用针对"本地符号"的重定位R_X86_64_32; 用-fPIC重新编译

当我尝试:./config shared CFLAGS=-fPIC 这不起作用.

我可以做些什么来使用'shared'选项来编译OpenSSL?

谢谢

Aki*_*oss 27

这里的问题相同,但通常Makefile会考虑编译器或链接器选项的环境变量.

因此,如果调用configure脚本之前放置该-fPIC选项,它应该处理它.你可以这样做:

CFLAGS=-fPIC ./config shared --prefix=/your/path
Run Code Online (Sandbox Code Playgroud)

要么

export CFLAGS=-fPIC
./config shared --prefix=/your/path
Run Code Online (Sandbox Code Playgroud)

它对我有用.

  • +1 - 今天在一个完全不同的项目中遇到这个,并且可以确认这完美.如果你已经尝试过没有这个正确的命令行来构建它,请记住`make clean`! (8认同)

小智 18

有一个选项-fXXX,你可以传递给配置,所以你可以用:

./config -fPIC shared
Run Code Online (Sandbox Code Playgroud)

  • 如果您之前尝试过构建,请务必在添加-fPIC之前"清理". (7认同)

小智 1

OpenSSL 版本 1.0(今天发布)与共享选项配合良好

  • 嗯,我在 1.0.0j 上仍然有同样的问题 (4认同)