Compiling program that uses libpcap on Mac OSX using iPhone 3.1.1 SDK for use on iPhone

Posted by Alan on Stack Overflow See other posts from Stack Overflow or by Alan
Published on 2010-06-17T01:59:08Z Indexed on 2010/06/17 2:02 UTC
Read the original article Hit count: 1110

Filed under:
|
|
|
|

Hey SOV users,

I have a question that I'm hoping some iPhone Developers may be able to help with. I had a look at statically compiling a binary on my Mac and moving it over to the iPhone for execution. I have managed to get this bit of it working by installing the iPhone 3.1.3 SDK on my Mac and setting the architecture to the iPhone in the gcc line as follows;

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -I ~/Downloads/libpcap-1.1.1/pcap-compiled/ -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk -o test test.c

I have managed to successfully compile a "Hello World" C program and executed it on the iPhone with success. e.g.

include

int main() {

printf("Hello, World!\n");
return(0);

}

This worked a charm. I am also using 'ldid' to sign the application (but only if necessary).

Anyways, I have been trying to get a program to compile which uses libpcap (http://www.tcpdump.org/) but with little success. I have downloaded and installed libpcap-1.1.1 on my mac and set the configure --prefix to /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/local and build the application. I then saw that the includes actually reside in Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/includes and so moved the Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/local/include files (which contained only the pcap stuff) to the correct location. I then attempted to compile the test program using;

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk/usr/include/ -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk -o pcap pcap.c -lpcap

This worked a lot better than other tests but produces an error; i.e.

ld: library not found for -lcrt1.o collect2: ld returned 1 exit status

Do you have any ideas as to how I can do this successfully? I've tried a load of different things but none seem to be successful. Basically, I just want to install (or add) some headers to the existing iPhoneOS SDK for use in compiling programs. Any ideas?

Cheers,

A

© Stack Overflow or respective owner

Related posts about iphone

Related posts about mac