0

我有一个使用 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

为什么?

4

2 回答 2

1

GCC 文档

-static

在支持动态链接的系统上,这会阻止与共享库的链接。在其他系统上,此选项无效。

于 2013-06-14T15:30:49.063 回答
1

你应该有libevent.a。然后你就可以了gcc -o myprogram mysource.c libevent.a

或者试试gcc -o myprogram -static mysource.c -levent

(而且您可能不应该指定mysource.hgcc,因为它很可能包含在 mysource.c 中#include "mysource.h"。)

于 2013-06-14T15:31:29.257 回答