【发布时间】:2014-01-14 00:02:39
【问题描述】:
我正在尝试编译一个我也想用作共享库的可执行文件。当我清楚地编译并将其链接为“可执行文件”时 - 一切都很好 - 文件可以启动并正常工作。在这个阶段,我无法正确链接其他库(日志中的大量重新定义)。当我尝试添加选项 -Fpic -shared - 程序成功编译,但从分段错误开始。我怎样才能让它同时可执行和“共享库”?
【问题讨论】:
-
你能显示错误吗?我已经在启用了
shared library的情况下在 linux 下编译了库和可执行文件,并且没有您描述的问题。所以这是可能的。 -
单个文件不能既是可执行文件又是共享库。
-
你为什么要这样做?唯一的例子是
/lib/libc.so.6... -
我有一些“解决方案”,我只是使用 -rdynamic 选项将我的模块构建为共享库。
-
显然我错了,@JohnZwick 也是。见here。