1

我知道 QNX 6.6 将 libpcap 作为其标准库的一部分。

当我链接到 libpcap.a 并尝试使用这些函数时,我得到“未定义的对 'function_name' 的引用”。

我需要让它真正工作的真正的 libpcap 库在哪里?有什么地方需要下载吗?


我是从 Momentics 构建的,所以没有单一的命令可以构建。

在链接器 > 其他选项下我有 -lpcap,在链接器 > 额外库下我有 pcap。

一种可能是我需要导入额外的库,但是 libpcap 有数百个,我不知道我需要哪些。

至于输出,我收到了一些无害的构建消息,然后是我的项目搜索路径,然后是其中 18 条关于不同功能的信息:

U:/.../target/qnx6/x86/usr/lib\libpcap.a(fad-getad.o): In function pcap_findalldevs':
(.text+0x2b): undefined reference to `getifaddrs'

其中一些在 pcap.h 中,而另一些则不在。这是完整列表:

'U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(scanner.o): 在函数pcap_lex': (.text+0x9c8): undefined reference togetaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap。 a(inet.o): 在函数pcap_lookupnet': (.text+0x6d8): undefined reference to套接字'U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(inet.o): 在函数pcap_lookupnet': (.text+0x744): undefined reference toioctl_socket'U:/shutchinson/QNX/target/ qnx6/x86/usr/lib\libpcap.a(inet.o): 在函数pcap_lookupnet': (.text+0x7c8): undefined reference toioctl_socket' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(pcap-bpf.o): 在函数pcap_set_datalink_bpf': (.text+0x16): undefined reference toioctl_socket' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(pcap-bpf.o): 在函数pcap_stats_bpf': (.text+0x21a): undefined reference toioctl_socket' U:/shutchinson/QNX/target/qnx6/x86/usr/ lib\libpcap.a(pcap-bpf.o): 在函数pcap_setdirection_bpf': (.text+0x3ef): undefined reference toioctl_socket' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(pcap-bpf.o):(.text+0x49d ):更多未定义的引用ioctl_socket' follow U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(fad-getad.o): In functionpcap_findalldevs':(.text+0x2b):未定义对 pcap_findalldevs'的引用getifaddrs' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(fad-getad.o): In function:(.text+0x175):未定义对gen_mcode6'的引用freeifaddrs' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(gencode.o): In function:(.text+0x5777):未定义对 gen_scode'的引用freeaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(gencode.o): In function:(.text+0x5b36):未定义对freeaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In functionpcap_nametoaddr' 的引用:(.text+0x2e):对gethostbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In functionpcap_nametoaddrinfo' 的未定义引用:(.text+0x93):对getaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In functionpcap_nametonetaddr' 的未定义引用:(.text+0xc4):对getnetbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In functionpcap_nametoport' 的未定义引用:(.text+0xee) : 对getservbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In functionpcap_nametoport' 的未定义引用:(.text+0x10f):对getservbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In functionpcap_nametoproto' 的未定义引用:(.text+0x251):对 `getprotobyname' 的未定义引用

4

1 回答 1

4

您必须将另一个库 (libsocket.a) 添加到链接器选项。即您的链接器选项必须是....... -lpcap -lsocket。

于 2015-09-11T17:39:54.917 回答