Linux下NDK的多平台编译实践
基于Linux系统的开发环境中,Android Native Development Kit(NDK)是Android设备上C/C++应用程序的构建环境,NDK能够让开发者优化设备性能,加快安卓应用程序运行速度,并可以实现代码重用。但是,在Linux下,使用NDK开发多平台应用程序,有时会变得复杂且麻烦,特别是对于未曾接触Android NDK的初学者来说,搭建多平台开发环境是一个棘手的问题。本文将基于Linux下的NDK尝试实现多平台应用程序的编译,并介绍如何使用Android NDK来解决编译时常见的问题。
首先,在使用Android NDK编译多平台应用程序之前,必须先下载安装安卓NDK,以便使用NDK编译器来编译应用程序。然后,需要为NDK配置准备编译的参数(比如指定架构类型)和要编译的源代码,同时还要配置编译环境,以便使NDK编译器正确识别各种编译器的指令。此外,在编写C/C++代码之前,要熟悉如何使用NDK API,以及如何使用它创建可在不同架构上运行的Native应用程序。
接下来,在编译多平台应用程序时,首先在Linux终端中输入如下代码,以复制NDK文件夹:
$ cp -r NDK_directory NDK_directory_1
这样做可以为多个架构类型复制单一的NDK目录,以便能够为每个架构类型指定不同的编译参数,避免编译过程中出现混乱。然后,我们需要使用NDK编译器来编译指定架构类型的代码,例如:
$ ./ndk-build -j8 APP_ABI=x86,armeabi-v7a
其中,APP_ABI参数指定需要编译的架构类型(位宽),该指令会编译两个指定架构类型的二进制文件;-j8参数指定使用8个并发线程来编译代码,使编译速度最大化。
最后,在编译过程中容易出现的问题,可以尝试使用如下命令来检查log文件,查看编译是否成功:
$ Python ndk-stack.py -sym obj [APP_ABI类型]
这样可以查看多平台应用程序编译的细节,以及dot文件及symbol表中出现报错或警告信息的类型。
至此,基于Linux下的NDK对于多平台应用程序的编译完成,本文基于NDK概述了多平台编译的主要流程,并介绍了如何避免多平台应用程序编译错误的方法。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
嵌入式Linux开发中的交叉编译是什么意思?
所谓交叉编译是指在A系统上编译B系统的二进制代码。 嵌入式的应用程序,甚至操作系统是运行在特定目标平台上,例如一块arm架构的目标板。 而编译程序的时候通常是在普通x86构架下的Linux操作系统的PC上。 在PC上编译嵌入式应用程序的过程叫做交叉编译。
Linux下环境搭建 怎么配置编译器
编译器:GCC编译器可以用来编译C和C++源程序,C编译器通过文件的后缀来判断是C程序还是C++程序。 一般来说C源文件的后缀为“.C”,而C++源文件的后缀为“.C”或“C++”。 但GCC编译器只能编译C++源程序,不能与使用的库连接,因此用G++来完成C++程序的编译与连接,该程序会自动调用GCC来编译。 Linux里环境变量的设置,有如下几种方法:(1)直接在终端里输入export后面加要设的变量,例如QT:ExportQTDIR=$PWD/qt-2.3.2其中,pwd是用来显当前路径的命令,在其前面加上$,则表示QT的目标目录在当前目录下的“qt-2.3.2”里,当然“$PWD”也可以用绝对路径来代替。 这种方法所设的环境变量在下次开机后不再有效,而且换个shell也不会有效,只是临时的。 (2)在etc/profile里添加环境变量,比如:exportQTDIR=/usrexportLD_LIBRARY_PATH=$QTDIR/libexportQT_QWS_FONTDIR=$QTDIR/lib/fontsexportQWS_DISPLAY=LinuxFb:/dev/fb0(3)修改,如果需要给某个用户权限使用这些环境变量,只需修改其个人用户家目录下的文件就可以了。 (4)用以上面两种方法设置好环境变量后记得重启以上使用QT为例
怎么在ubuntu下编程?已经有ubuntu怎么下编程软件?下什么软件好
作为新手,第一次在ubuntu系统下,使用c++编程时,你是不是很迷茫,无从下手啊?你会纠结已经写好的文件要怎样编译?打开那个命令行是怎么回事?是不是“终端”?一系列的疑问会冒出来。 那么,今天简单的总结了一下。 希望能给那些初次接触ubuntu下C++编程的童鞋们一些帮助。 1.首先ubuntu系统自带了C++编译器即g++,查看下你的系统中有没有安装。 若没有安装,那么在命令终端(ctrl+T)下输入:sudo apt-getinstall gcc,就可以安装gcc编译器了。 2.用vim或者emacs写程序,它们的中文翻译:一个是神的编辑器,一个是编辑器之神。 当然意思都是说这两个编辑器很厉害,各有所长,就看自己的喜好了,我一般用的是vim编辑器。 3 在终端中输入VIM就能打开vim编辑器。 Vim操作指南,编写好了一个文件后保存为。 4 (注意:一定要保证你的终端是在你保存的文件的目录下,不然每次你输入都要写上全部目录路径。 )g++ -0 123 意思是将这个源文件使用g++编译器编译,编译后的输出是123可执行文件。 5 在终端下输入123,就能显示你代码的执行结果了。 要是你嫌弃上面的步骤繁琐,可以直接使用下面这个方法。 打开终端,把放到home下,这样你在终端即在home文件夹下,可以直接编译命令:g++ ./。 然后在home下就会有一个,这个就是编译出来的文件。 接着运行它:./,就可以在终端中看到结果了。
发表评论