有没有办法确定 .a 或 .so 库已编译为位置无关代码?
针对 lapack 编译 numpy 库时出现链接错误,表明我需要使用 -fPIC 编译 lapack。我以为我已经做到了。有没有办法确定生成的 lapack 库是位置无关的?
I am getting a linking error when compiling the numpy library against lapack indicating I need to compile lapack with -fPIC. I thought I had done just that. Is there a way to determine that the produced lapack library is position independent?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能会运气好 这个答案,虽然它依赖于平台并且不适用于所有对象文件(但如果您的代码以任何方式操作指针,它应该可以工作)。
这是使用
-fPIC
编译的文件上objdump -r
的结果:这是针对没有 PIC 的文件:
You may have some luck with this answer, although it's platform dependent and doesn't work for all object files (but if you code manipulates pointers in any way, it should work).
This is the result of
objdump -r
on a file compiled with-fPIC
:and this is for a file without PIC:
一般来说,你无法知道:
In general, you have no way of knowing: