proj.c :(。text + 0x140):对'pcap_open_offline'的未定义引用

时间:2017-10-24 22:23:48

标签: c pcap undefined-reference

我正在尝试使用pcap函数,但它给了我编译器错误:

project.c:(.text+0x140): undefined reference to `pcap_open_offline'

我已经安装了库并且在编译时我给了“-lpcap”并且正如它在很多论坛中所建议的那样。

有什么问题,拜托?

1 个答案:

答案 0 :(得分:0)

您需要了解引用链接器的参数。

我假设您正在使用带有gcc的Linux系统,使用ld作为链接器(请注意,这可能会因系统和使用的链接器而改变)。

在这种情况下,-Lpath告诉链接器在哪里查找您告诉它的库,这些库需要与您的程序链接以创建最终的二进制文件。例如-L/usr/lib

输入时输入

# gcc -L/usr/lib -lcap my_program.c -o my_program

您告诉链接器将/usr/lib附加到路径列表以查找库,并将动态库“libcap.so”链接到您的程序。

用于定位库的路径的其他修饰符是LD_LIBRAY_PATH(此环境变量的名称可能会从一个系统更改为另一个系统,请查看链接器的手册)。

当您使用“-lcap”时,您会发现错误与libcap.so存在的路径无关。将该文件找到您的系统并传递参数

-L/path/to/the/directory/that/contain/libcap.so

顺便说一句,尝试在任何其他事情之前运行它并重新编译:

# sudo ldconfig