试图编译一个使用 pcap.h 的基本程序。我已经在我的 Mac OSX 机器上设置了环境,它使用 iPhone 3.1.3 SDK for iPhone 3GS。我还将 libpcap 安装到 ~/libpcap 中,因此我可以使用 -I 标志告诉 gcc 在哪里查找标头。但是,它会失败并显示 ld 警告,说明该文件不是所需的体系结构。
我正在编译以下行:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -I /Users/abnev/libpcap/include -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk -o pcap pcap.c -lpcap
正在生成的错误是:
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/usr/lib/libpcap.dylib, file is not of required architecture
Undefined symbols:
"_pcap_geterr", referenced from:
_main in ccOL3e0B.o
_main in ccOL3e0B.o
"_pcap_open_live", referenced from:
_main in ccOL3e0B.o
"_pcap_next", referenced from:
_main in ccOL3e0B.o
"_pcap_lookupdev", referenced from:
_main in ccOL3e0B.o
"_pcap_setfilter", referenced from:
_main in ccOL3e0B.o
"_pcap_lookupnet", referenced from:
_main in ccOL3e0B.o
"_pcap_close", referenced from:
_main in ccOL3e0B.o
"_pcap_compile", referenced from:
_main in ccOL3e0B.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
我现在假设我需要为 armv6 架构(iPhone)重新编译 libpcap,但检查 ./configure 选项并没有帮助。我已经尝试过用谷歌搜索,但那里几乎没有。