是否可以在越狱的 iOS 设备上编译 X86 程序?
Is it possible to compile a X86 program on a jailbroken iOS device?
我有一个 iPad 运行ning iOS 13.5,它已经越狱了。
我在Cydia商店安装了clang编译器和vim编辑器,所以我可以用vim写代码,用clang编译源代码。编译执行均成功
现在我有了一个想法,我知道有一种叫做交叉编译的方法,那么是否可以在iPad上编译一个C程序,在macOS 运行或[=18] =]?
你当然可以为 macOS 编译。您只需要带有头文件和库存根的 SDK,您可以从 Xcode 复制它们,也可以从 here.
获取它们
您可以使用 -isysroot
将其文件夹传递给编译器,或者将其 place/symlink 传递给 /usr/share/SDKs/MacOSX.sdk
,编译器将在其中自动找到它。
完成后,您可以 运行:
clang --target=x86_64-apple-darwin -o t t.c
针对 Linux 或 Windows 的编译将分别以与 --target=x86_64-linux-gnu
和 --target=x86_64-windows-msvc
类似的方式工作,但除了合适的 SDK 之外,还需要自定义链接器.您大概可以为 iOS 构建 LLVM 的 lld
,然后为 Linux 传递 -fuse-ld=ld.lld
或为 Windows 传递 -fuse-ld=lld-link
,但我无法做到找到它作为 iOS.
的预编译二进制文件
我有一个 iPad 运行ning iOS 13.5,它已经越狱了。 我在Cydia商店安装了clang编译器和vim编辑器,所以我可以用vim写代码,用clang编译源代码。编译执行均成功
现在我有了一个想法,我知道有一种叫做交叉编译的方法,那么是否可以在iPad上编译一个C程序,在macOS 运行或[=18] =]?
你当然可以为 macOS 编译。您只需要带有头文件和库存根的 SDK,您可以从 Xcode 复制它们,也可以从 here.
获取它们
您可以使用 -isysroot
将其文件夹传递给编译器,或者将其 place/symlink 传递给 /usr/share/SDKs/MacOSX.sdk
,编译器将在其中自动找到它。
完成后,您可以 运行:
clang --target=x86_64-apple-darwin -o t t.c
针对 Linux 或 Windows 的编译将分别以与 --target=x86_64-linux-gnu
和 --target=x86_64-windows-msvc
类似的方式工作,但除了合适的 SDK 之外,还需要自定义链接器.您大概可以为 iOS 构建 LLVM 的 lld
,然后为 Linux 传递 -fuse-ld=ld.lld
或为 Windows 传递 -fuse-ld=lld-link
,但我无法做到找到它作为 iOS.