本篇我们的目标是在IPHONE上运行ARM64,C语言,C++和OC程序!
- Clang
对于iOS开发者来说,Clang编译器一点也不陌生,Clang是一个C语言、C++、Objective-C、C++语言的轻量级编译器。源代码发布于BSD协议下,是基于LLVM的,也是Xcode 第一的编译器。 - 交叉编译
指在一个平台上生成另一个平台上的可执行代码。现在我们就在Mac上写代码,在iPhone上运行,想想都刺激! - 设备环境
使用的是Mac和越狱iOS13.2.2的iPhoneX
ARM64
- 新建一个hello.txt文本
- 把下面代码复制进去,保存退出
1 | .extern _printf |
- 改文本后缀,改为hello.asm文件
- 打开终端,使开始编译
1 | 1、查看sdk安装路径 |
- 签名,在iOS系统中运行程序需要代码签名,所以要增加一个签名步骤。
a.新建ent.plist
b.把下面代码复制进去,保存在hello.asm同一目录下
1 | <?xml version="1.0" encoding="UTF-8"?> |
- 对hello文件进行签名
1 | codesign -s - --entitlements ent.plist -f hello |
- 把签名后的hello文件拷进iPhone的/usr/bin/目录下,好像很多目录下都可以的
1 | scp hello root@192.168.0.170:/usr/bin |
)
- 运行hello文件,完美!
)
———————-华丽的分割线————————
C语言
- 新建1.txt
- 复制代码保存,文件改为1.c
1 | #include <stdio.h> |
- 编译签名
- 拷贝到iPhone上,运行, 完美!
)
———————-华丽的分割线————————
OBJECT-C
- 新建2.txt
- 复制代码保存,文件改为2.m
1 | #import <Foundation/Foundation.h> |
- 编译签名
oc的编译有点不一样,因为导入了foundation框架,在Clang编译的时候需要指定一下
1 | clang -arch arm64 -framework Foundation -isysroot "sdk" 2.m -o 2 |
- 拷贝到iPhone上,运行, 完美!
)
———————-华丽的分割线————————
C++
- 新建3.txt
- 复制代码保存,文件改为3.cpp
1 | #include <iostream> |
- 编译签名
因为clang完美兼容g++,gcc,所以一些命令可以完美继承! - 拷贝到iPhone上,运行, 完美!
)
———————-华丽的分割线————————
好了,今天的代码就敲到这里了,更多Clang的用法可以去看看文档。
文档:http://clang.llvm.org/docs/UsersManual.html
本文转载自: CSDN