【发布时间】:2018-10-03 15:50:35
【问题描述】:
我有一个在 Linux 上编译的项目。当我对可执行文件运行ldd 命令时,我得到了以下结果:
libevent_core-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent_core-2.1.so.6 (0x00007fca87a5e000)
libevent_pthreads-2.1.so.6 => /usr/lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.6 (0x00007fca8785b000)
现在,我想让这些库编译为静态库。我该怎么做?
这是我的 make 文件库:
LIBS = -levent_core -levent_extra -levent -levent_pthreads -lsystemd
【问题讨论】:
-
我不相信你可以没有来源。共享库被编译为与位置无关的寻址
-fPIC,所以如果没有代码,我认为你不走运。除非我误会你了。这是你的代码吗? -
@jiveturkey 不,这不是我的代码。我有源代码文件,但我只需要将一些库设为静态而不是动态。我已经提到了我想转换为静态的库,并且我已经制作了我需要更改的文件。
-
编译后需要使用
ar创建库。 stackoverflow.com/questions/5947067/… -
@jiveturkey 我已经在 libevent 的开发包中有 .a 文件,我只需要将其设为静态即可。