前言
咱们知道android设备可以直接运行apk应用,或者使用dalvikvm指令运行dex文件中的程序, 但是这两者本质上使用的语言都是java或者smali, 如果需要执行C语言程序,需要借助NDK...编译成so库, 有没有不使用NDK而直接编译c原生程序然后在安卓设备中运行的方式呢?...交叉编译
C语言是一门跨平台的语言,语言跨平台,但是程序不跨平台, 也就是说在windows平台下编译的程序只能在windows平台上执行,linux亦是如此, 为什么会出现这种情况呢?...,会根据当前平台的cpu架构和操作系统生成只能在当前平台运行的程序
如果我想在windows平台编译出能在linux系统或者在ARM 设备中运行的程序, 那该怎么办呢?...arm-none-linux-eabi:用于Linux的,ARM架构,使用Glibc
如果是裸机编译,由于没有操作系统进行文件识别翻译,因此编译出来的大部分是面向cpu内核的机器码文件
单片机编译后的文件就是如此
回到主题
我需要用C语言编写一个能在安卓设备上运行的程序