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: 1139
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