我正在尝试使用pcap函数,但它给了我编译器错误:
project.c:(.text+0x140): undefined reference to `pcap_open_offline'
我已经安装了库并且在编译时我给了“-lpcap”并且正如它在很多论坛中所建议的那样。
有什么问题,拜托?
答案 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