Можно ли скомпилировать libpcap для iPhone / armv6? - PullRequest
1 голос
/ 18 июня 2010

Попытка скомпилировать базовую программу, которая использует pcap.h. Я настроил среду на своем компьютере Mac OSX, который использует iPhone 3.1.3 SDK для iPhone 3GS. Я также установил libpcap в ~ / libpcap, чтобы я мог указать gcc, где искать заголовки, используя флаг -I. Тем не менее, происходит сбой с предупреждением 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

Теперь я предполагаю, что мне нужно перекомпилировать libpcap для архитектуры armv6 (iPhone), но проверка параметров ./configure не помогает. Я пытался найти Google для этого, но там очень мало.

1 Ответ

4 голосов
/ 26 июля 2011

pcap.c не является исходным кодом для libpcap, это один исходных файлов для libpcap.Вам придется скомпилировать все исходные файлы и собрать их в библиотеку.

Выполнение

CFLAGS="-I /Users/abnev/libpcap/include -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk" ./configure

может создать Make-файл, который будет кросс-компилировать libpcapiOS.

Я предполагаю, что вы будете устанавливать libpcap или приложение, созданное с его помощью, на взломанный iPhone, по крайней мере, если вы собираетесь захватывать пакеты, потому что вам нужен root-доступ для libpcapчтобы иметь возможность открыть устройство BPF, чтобы иметь возможность захвата.

...