Search code examples
ioslinuxcross-compilinggnujailbreak

Unable to cross compile iOS programs on linux


I know that someone already asked this question but it isn`t up to date anymore. Most of the links are dead and the commands are not relevant anymore.

I have read these

Compile IOS program from linux commandline

How to cross-compile clang/llvm for iOS?

For example, I have been trying to compile silversearcher-ag for my iPhone 6 (jailbroken). This is the project link https://github.com/ggreer/the_silver_searcher.

I am targeting iOS 12.4.

These are the commands that I`ve tried

./configure CC=/home/growtopiajaw/Desktop/cctools-port-master/usage_examples/ios_toolchain/target/bin/arm-apple-darwin11-clang CXX=/home/growtopiajaw/Desktop/cctools-port-master/usage_examples/ios_toolchain/target/bin/arm-apple-darwin11-clang++ --host=arm-apple-darwin11

make

I am using cctools-port to cross compile the project. My compiled cctools toolchain is located under /home/growtopiajaw/Desktop/cctools-port-master/usage_examples/ios_toolchain/target and below is how the toolchain`s directory structure looks like cctools directory structure

This is my configure log: https://del.dog/nugibonury

This is my make log:

CC       src/ignore.o
In file included from src/ignore.c:11:
./src/options.h:7:10: fatal error: 'pcre.h' file not found
#include <pcre.h>
         ^~~~~~~~
1 error generated.
make: *** [Makefile:494: src/ignore.o] Error 1

This is my GitHub repository containing the cross compile toolchain https://github.com/GrowtopiaJaw/arm-apple-darwin11


Solution

  • Apple does not ship PCRE. You need to get the headers and dylib/tbd files manually.

    If you're using checkra1n or unc0ver, then the deb on the APT repo contains headers as well, so you could just use that.

    If you plan to package this into an APT/dpkg file, make sure to add pcre as a dependency.