我有一个使用 libevent 库的程序
编译程序时,编译命令如下:
gcc -o myprogram mysource.c mysource.h -levent
所以是动态链接。
现在我想在没有libevent的电脑上运行这个程序,我需要静态链接以便我的程序可以在那台计算机上运行,有什么简单的步骤吗?
我尝试了 -static
,但我得到了以下错误:
[root@kitty relay]# gcc -o relay -static mysource.c mysource.h -levent -lpcap
/usr/bin/ld: cannot find -lpcap
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
为什么?
你应该有 libevent.a
。然后你可以 gcc -o myprogram mysource.c libevent.a
。
或者试试 gcc -o myprogram -static mysource.c -levent
。
(您可能不应该将 mysource.h
指定给 gcc,因为它很可能包含在 mysource.c 中,带有 #include "mysource.h"
。)
我是一名优秀的程序员,十分优秀!