安卓运行c语言程序,在Android系统上运行C/C++程序
1. 安装NDK;
2. 编写hello.c源文件
#include
int main() {
printf("hello, arm c world!\n");
return 0;
}
3. 编写编译脚本compile.sh:
#!/bin/bash
PREFIX=$NDK_HOME
CC="$PREFIX/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-gcc"
NDK="$PREFIX/platforms/android-14/arch-arm"
CFLAGS="-I$NDK/usr/include"
LDFLAGS="-nostdlib -Wl,-rpath-link=$NDK/usr/lib -L$NDK/usr/lib $NDK/usr/lib/crtbegin_dynamic.o -lc"
$CC -o $1 $2 $CFLAGS $LDFLAGS
4. 运行编译脚本:
chmod u+x compile.sh
./compile.sh hello hello.c
5. 到android设备上运行
adb push hello /data/local/tmp/hello
adb shell /data/local/tmp/hello
6. 看到输出结果:
hello, arm c world!
7. 当然,可以直接使用ndk-build命令来编译
a. 新建目录 workspace;
b. 进入workspace,新建目录jni;
c. 进入jni,新建hello.c文件,输入源文件内容;
d. 新建Android.mk文件,内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= hello.c
LOCAL_MODULE := libtest
include $(BUILD_EXECUTABLE)
e. 运行ndk-build命令,可看到在workspace目录下生成了libs和obj两个目录,libs下对应的armeabi文件夹下有生成的可执行文件 test
f. adb push test /data/local/tmp/test
adb shell test /data/local/tmp/test 运行
安卓运行c语言程序,在Android系统上运行C/C++程序相关推荐
- python可以在哪些系统运行_Python 语言可以在哪些操作系统上运行?
Python 语言可以在哪些操作系统上运行? 答:以上都可以 仿生法有哪些实施步骤?() 答:研究生物体的结构.功能 明确发明创造物的功能 选择模拟的对象 抽象成数学模型,再制成实物模型 Which? ...
- linux如何运行安卓程序,如何在Android系统上运行C语言的程序
问题阐述: 本人使用mini6410开发了一个sqlite数据库的程序,在mini6410的linux系统下已经能够成功运行了.因为Android使用的也是linux内核,所以我想当然的认为按照同样的 ...
- qt编写的android程序在android系统中运行,中文显示乱码的解决方法
在main函数中添加 QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QTextCodec::setCodecForTr(QTextC ...
- iEmu:在Linux、Windows、Mac、Android系统上仿真运行iOS应用
iOS 是一个"封闭"的系统,而Android是一个"开放"的系统,两者可谓是泾渭分明.现在,iEmu试图打破这两个操作系统之间的界限.iEmu是当年最 早破解 ...
- 第二讲:Android系统构架分析和应用程序目录结构分析
2019独角兽企业重金招聘Python工程师标准>>> 本讲内容: Android系统构架简介 Android应用程序结构分析 点这里下载:Android学习指南第二讲源代码 一.A ...
- 安卓system镜像分区_如何完全备份android系统上的system分区和data分区
安卓的系统备份在很多场合下可能会用到,下面这个python的脚本,可以用来备份整个的data分区:将所有data分区的文件和目录打包到data.zip,并生成recovery的专用edify脚本到up ...
- 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版
Install linux distribution (Debian/Ubuntu/Kali Linux/Fedora/openSUSE/Gentoo/RootFS/Arch Linux) on An ...
- Crossover2023mac苹果电脑系统上运行Windows程序虚拟机工具模拟器
CrossOver是一款可以让Mac和Linux系统中正常运行Windows软件的应用程序.它不像虚拟机一样需要安装Windows系统之后才可以安装Windows的应用程序,这一方式给大多数用户带来了 ...
- 64位系统上运行32位程序的内存限制
64位系统上运行32位程序能否申请到8G内存? 收藏到手机 转发 评论 2010-01-20 10:56 申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来 ...
最新文章
- 如何安装树莓派摄像头
- LeetCode 202. Happy Number--Python解法
- oracle 条件动态视图,oracle最重要的9个动态性能视图
- Linux线程退出、资源回收、资源清理的方法
- 卷积输出的记录,为什么是([3, 0, 1, 2])
- [开源]基于姿态估计的运动计数APP开发(一)
- linux命令history作用,Linux命令:history命令历史的管理及用法
- MATLAB PDE工具箱电磁场仿真平行电容板及电偶极子详解
- mysql数据库函数详解_MySQL数据库之字符函数详解
- 开课吧:全栈工程师的关键开发技能(硬实力)
- maven的安装步骤
- apollo 配置中心_Apollo 配置中心:分布式部署
- 如何成为一个游戏制作人——第5.5章一个小游戏的框架
- 简单的网站全屏背景图代码
- 如何成为一名程序员?
- 【Vue作业]---Vue登录注册界面
- 机器学习理论基础---1
- 如何创建PostgreSQL 生成列
- 【GNSS】抗差估计(稳健估计)原理及程序实现
- GD32测量pwm波频率以及占空比