我知道QNX 6.6将libpcap作为其标准库的一部分。
当我链接到libpcap.a并尝试使用这些函数时,我得到“对'function_name'的未定义引用”。
真正的libpcap库在哪里才能让它真正起作用?我需要从哪个地方下载它吗?
我正在从Momentics构建,因此没有单一命令可以构建。
在链接器下>其他选项我有-lpcap,并在Linker>下额外的库我有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 to
getaddrinfo'中 U:/ shutchinson / QNX / target / qnx6 / x86 / usr / lib \ libpcap.a(inet.o):在函数pcap_lookupnet': (.text+0x6d8): undefined reference to
socket'中 U:/ shutchinson / QNX / target / qnx6 / x86 / usr / lib \ libpcap.a(inet.o):在函数pcap_lookupnet': (.text+0x744): undefined reference to
ioctl_socket'中 U:/ shutchinson / QNX / target / qnx6 / x86 / usr / lib \ libpcap.a(inet.o):在函数pcap_lookupnet': (.text+0x7c8): undefined reference to
ioctl_socket'中 U:/ shutchinson / QNX / target / qnx6 / x86 / usr / lib \ libpcap.a(pcap-bpf.o):在函数pcap_set_datalink_bpf': (.text+0x16): undefined reference to
ioctl_socket'中 U:/ shutchinson / QNX / target / qnx6 / x86 / usr / lib \ libpcap.a(pcap-bpf.o):在函数pcap_stats_bpf': (.text+0x21a): undefined reference to
ioctl_socket'中 U:/ shutchinson / QNX / target / qnx6 / x86 / usr / lib \ libpcap.a(pcap-bpf.o):在函数pcap_setdirection_bpf': (.text+0x3ef): undefined reference to
ioctl_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 function
pcap_findalldevs'的更多未定义引用: (.text + 0x2b):对getifaddrs' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(fad-getad.o): In function
pcap_findalldevs'的未定义引用: (.text + 0x175):对freeifaddrs' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(gencode.o): In function
gen_mcode6'的未定义引用: (.text + 0x5777):对freeaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(gencode.o): In function
gen_scode'的未定义引用: (.text + 0x5b36):对freeaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In function
pcap_nametoaddr'的未定义引用: (.text + 0x2e):对gethostbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In function
pcap_nametoaddrinfo'的未定义引用: (.text + 0x93):对getaddrinfo' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In function
pcap_nametonetaddr'的未定义引用: (.text + 0xc4):对getnetbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In function
pcap_nametoport'的未定义引用: (.text + 0xee):对getservbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In function
pcap_nametoport'的未定义引用: (.text + 0x10f):对getservbyname' U:/shutchinson/QNX/target/qnx6/x86/usr/lib\libpcap.a(nametoaddr.o): In function
pcap_nametoproto'的未定义引用: (.text + 0x251):未定义对`getprotobyname'的引用
答案 0 :(得分:3)
您必须将另一个库(libsocket.a)添加到链接器选项。即您的链接器选项必须是.............. -lpcap -lsocket。