LIBSSL 静态库与 fpic 的编译问题

发布于 2024-12-02 21:24:49 字数 431 浏览 0 评论 0原文

我使用编译 libssl

CC="gcc34 -fPIC" CXX="g++34 -fPIC" CFLAGS="-m64 -fPIC" ./config --prefix=/workspace/libs/gcc34/64/ssl shared  && make clean && make && make install 

但是当我尝试将此静态生成的库与我的动态库链接时 我发现

 relocation R_X86_64_PC32 against `OPENSSL_cpuid_setup' can not be used when making a shared object; recompile with -fPIC

我给了 fpic 选项有什么问题吗?

I compiled libssl using

CC="gcc34 -fPIC" CXX="g++34 -fPIC" CFLAGS="-m64 -fPIC" ./config --prefix=/workspace/libs/gcc34/64/ssl shared  && make clean && make && make install 

but when I try to link this static generated library with my dynamic library
I am getting

 relocation R_X86_64_PC32 against `OPENSSL_cpuid_setup' can not be used when making a shared object; recompile with -fPIC

I had given fpic option what is wrong there ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

魂归处 2024-12-09 21:24:49

这对我有用,openssl-1.0.1c

./config -fPIC
make
make install

this worked for me, openssl-1.0.1c

./config -fPIC
make
make install
梦途 2024-12-09 21:24:49

最后,我想,我找到了解决方案:
当 LDFLAGS 设置为强化而 CFLAGS 未设置时,会出现“在创建共享对象时,不能使用 R_X86_64_PC32 反对未定义符号;使用 -fPIC 重新编译”。
在你的情况下,我猜你不应该设置 CFLAGS 。

参考:https://bugzilla.redhat.com/show_bug.cgi?id=1304277

Finally, I think, I found the solution:
This "R_X86_64_PC32 against undefined symbol can not be used when making a shared object; recompile with -fPIC" happens when LDFLAGS are set with hardening and CFLAGS not.
In your case you shouldn't set CFLAGS I guess .

Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1304277

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文