【发布时间】:2013-11-26 10:42:30
【问题描述】:
我正在尝试构建一个使用 WinPcap 函数的示例程序。我正在使用 MinGW 在 Windows 7 64 位版本下工作。我能够将 C 代码编译为目标文件,但无法链接到 wpcap.lib。 我的链接器调用如下所示:
gcc -L ../../lib/x64 send_packet.o -lwpcap -o WinPcapTest.exe
通过此调用,我收到以下错误:
undefined reference to pcap_open
undefined reference to pcap_sendpacket
undefined reference to pcap_geterr
显然我没有链接到 wpcap.lib,但我不知道为什么。图书馆肯定找到了。例如,如果我更改 lib 包含路径,我会收到此错误:
cannot find -lwpcap
为什么链接器找到了库但没有链接到它?谢谢你的帮助。
【问题讨论】:
-
这
gcc -L ../../lib/x64 send_packet.o -lwpcap -o WinPcapTest.exe是否反映了您为构建可执行文件而发出的real 命令,从而给您问题中提到的错误,尤其是在参数的顺序方面? -
是的。我只是缩短了库包含路径以提高可读性。真正的命令是这样的:
gcc -L ..\..\..\Downloads\WpdPack_4_1_2\WpdPack\Lib\x64 send_packet.o -lwpcap -o WinPcapTest.exe -
我也尝试了组合编译器和链接器调用:
gcc -I ..\..\..\Downloads\WpdPack_4_1_2\WpdPack\Include ..\send_packet.c -L ..\..\..\Downloads\WpdPack_4_1_2\WpdPack\Lib\x64 -lwpcap -O0 -g3 -Wall -o WinPcapTest.exe并得到了相同的结果。
标签: c gcc linker mingw winpcap