android4.1编译
- 格式:doc
- 大小:23.50 KB
- 文档页数:5
android NDK编译(导入).a文件和编译多个so文件android NDK编译(导入).a文件和编译多个so文件【字体:小大】IT者安全网()一、编译一个静态库libstatic_android.aLOCAL_PATH := $(call my-dir)include $(CLEAR_V ARS)LOCAL_MODULE := static_androidLOCAL_SRC_FILES := libstatic_android.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_V ARS)LOCAL_MODULE := fpdfembedsdkLOCAL_SRC_FILES := xxxx.cppLOCAL_C_INCLUDES := $(LOCAL_PATH)/../include/LOCAL_LDLIBS := -llog -g -L. -ljnigraphics#fill in the foxit library here#LOCAL_LDLIBS += libstatic_android.aLOCAL_STATIC_LIBRARIES := static_androidinclude $(BUILD_SHARED_LIBRARY)#$(BUILD_STATIC_LIBRARY)二、编译多个so文件(1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件。
由于一般情况下Android.mk和需要编译的源文件在同一目录下,所以定义成如下形式:LOCAL_PATH:=$(call my-dir)上面的语句的意思是将LOCAL_PATH变量定义成本文件所在目录路径。
(2)Android.mk中可以定义多个编译模块,每个编译模块都是以include $(CLEAR_V ARS)开始,以include $(BUILD_XXX)结束。
Android是个神奇的货,近两年比较火热,学习他的人也比较多,但是对于很多初学者来说比较头疼,(当然本人也很菜鸟),今天在学习一个安卓项目时,苦于找不到源代码,无奈只好下载网上现成的.apk文件,顿时好奇能不能反编译看到源代码呢?答案是肯定的!让我们行动起来!
首先,我们将文件的后缀名改为.zip。
这时候我们将可以解压这个文件,如图:
此处我们已经看到一个压缩文件了,打开它。
注意我们的重点是.dex 文件
这个classes.dex是个好东西呀!
然后,然后……
我们需要下两个软件:
dex2jar下载地址:/p/dex2jar/
JD-GUI下载地址:http://java.decompiler.free.fr/?q=jdgui
把我们刚找到的classes.dex拷贝到dex2jar的目录下吧(与dex2jar.bat在同一个目录下),然后运行dex2jar.bat classes.dex,将会生成一个文件classes_dex2jar.jar。
快OK 啦~~~~
运行jd-gui.exe 直接将classes_dex2jar.jar 拖进去吧,瞧!我们要的出来了!。
菜鸟夜谈android反编译⼯具:反编译命令提取资源(smail汇编代码):apktool d file.apk pathdex2jar反编译:dex2jar file.apk (or classes.dex)⽤jd-gui就可以打开jar看了⽤jd-gui在windows下没问题,在linux64下要装ia32的库。
⼀般代码都被混淆过。
都是abcdefg。
下⾯讲讲本⼈的⼀些⼩技巧。
本⼈最近反编译⼀个aide,菜鸟抄抄别⼈的实现。
⼀般都是从布局⼊⼿,找出相应关键的view类:如<com.aide.ui.AIDEEditorPager 。
可以在代码⽂件⾥找到AIDEEditorPager这个类,下⾯贴点代码:package com.aide.ui;import android.content.Context;import android.graphics.Rect;import android.os.Build.VERSION;import android.support.v4.view.ViewPager;import android.support.v4.view.aa;import android.util.AttributeSet;import youtInflater;import android.view.MotionEvent;import android.view.View;import mon.c;import com.aide.engine.SyntaxError;import com.aide.ui.util.k;import ng.reflect.Field;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import rg;import rh;import ri;public class AIDEEditorPagerextends ViewPagerimplements ri{private boolean DW;private f FH;private boolean Hw;private List j6 = new ArrayList();private l v5;public AIDEEditorPager(Context paramContext){super(paramContext);sG();}public AIDEEditorPager(Context paramContext, AttributeSet paramAttributeSet){super(paramContext, paramAttributeSet);sG();}private void DW(boolean paramBoolean){int i = 4;View localView1 = getRootView();int j;View localView3;if (localView1 != null){View localView2 = localView1.findViewById(2131427448);if (localView2 != null){if (!paramBoolean) {break label62;}j = 0;localView2.setVisibility(j);}localView3 = localView1.findViewById(2131427446);if (localView3 != null) {if (!paramBoolean) {break label68;}}}for (;;){localView3.setVisibility(i);return;label62:j = i;break;label68:i = 0;}}private int Hw(String paramString){for (int i = 0;; i++){if (i >= this.j6.size()) {i = -1;}while (v5(i).d_().equals(paramString)) {return i;}}}private void Sf(){postDelayed(new Runnable(){public void run(){AIDEEditorPager.DW(AIDEEditorPager.this).v5();}}, 50L);}这么乱的代码,想找到⾃⼰想要的代码真是不容易。
Android开发apk反编译和⼆次打包教程作为Android开发者,⼯作中少不了要反编译别⼈的apk,当然主要⽬的还是为了学习到更多,取彼之长,补⼰之短。
今天就来总结⼀下Android反编译和⼆次打包的⼀些知识。
⾸先声明本⽂的⽬的是为了通过例⼦讲解反编译和⼆次打包的原理和⽅法,继⽽作为后续讲解防⽌⼆次打包和App安全的依据,并不是⿎励⼤家去重新打包别⼈的App,盗取他⼈劳动成果。
本⽂⾸先介绍⼏种Android反编译⼯具的使⽤,然后实现在不需要知道源代码的情况下,仅通过修改反编译得到的smali⽂件实现修改apk逻辑功能的⽬的。
Android中常⽤的反编译⼯具有三个:dex2jar、jd-gui和apktool,这三个⼯具的作⽤如下:dex2jar:将apk中的classes.dex⽂件转换成jar⽂件。
jd-gui:查看由dex2jar转换成的jar⽂件,以界⾯的形式展⽰反编译出来的Java源代码。
apktool:反编译⽣成smali字节码⽂件,提取apk中的资源⽂件。
为了尽可能的把问题讲清楚,我们来实现⼀个很简单的例⼦。
⾸先创建⼀个⼯程DecompileDemo,在MainActivity中定义⼀个布局,其中包含⼀个Button,点击会打印⼀段⽇志。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {private static final String TAG = "MainActivity";private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(this);}@Overridepublic void onClick(View v) {Log.d(TAG,"Button is clicked");}}将这个⼯程编译⽣成的apk解压,取出其中的classes.dex放在dex2jar⼯具的⽬录下,然后执⾏命令会在当前⽬录下⽣成class-dex2jar.jar⽂件然后打开jd-gui,将class-dex2jar.jar⽂件拖进去,就可以看到反编译出来的源代码。
Android系统移植与调试之------->Amlogic方案编译步骤时间 2013-07-25 09:36:57 CSDN博客原文/qq446282412/article/details/9464251主题Android Linux命令1. 拷贝 Amlogic 的 SourceCode切换目录到 /home/roco/work/amlogic/SourceCode/mx0831-0525下将mx0831-0525.tgz 拷贝到/home/pyou/ 目录下,解压,生成mx0831-0525目录。
此目录就是将来的工作目录。
tar.bz2 命令: tar -jxvf *.tar.bz22. 配置环境变量2.1 准备工作切换目录到 /home/roco/work/amlogic/Document中,拷贝amlogic-tool.zip到 /home/pyou 下解压生成 amlogic-tool目录该目录下有以下3 个压缩文件1. arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz22. arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu1.tar.bz23. gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar.bz2由于前面两个解压的目录相同,所以新建一个目录188,并将 arm-2010q1-188-arm -none-eabi-i686-pc-linux-gnu.tar.bz2移到188 目录下,解压生成目录 /amlogic-tool/18 8/arm-2010q切换目录到/amlogic-tool,分别解压gnutools-arc2.3-p0-ubuntu-9.04-2010-5-10.tar. bz2文件和arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu1.tar.bz2 文件,生成目录/amlogic-tool/arm-2010q1和目录/amlogic-tool/opt2.2 修改 .bashrc 文件添加环境变量切换目录到/home/pyou目录下,使用ll命令查文件列表,然后使用vim命令修改 . bashrc 文件,在该文件最后添加环境变量。
华为⼿机内核代码的编译及刷⼊教程【通过魔改华为P9AndroidKernel对抗反调试机制】0x00 写在前⾯攻防对⽴。
程序调试与反调试之间的对抗是⼀个永恒的主题。
在安卓逆向⼯程实践中,通过修改和编译安卓内核源码来对抗反调试是⼀种常见的⽅法。
但⽹上关于此类的资料⽐较少,且都是基于AOSP(即"Android 开放源代码项⽬",可以理解为原⽣安卓源码)进⾏修改,然后编译成⼆进制镜像再刷⼊Nexus 或者Pixel 等⾕歌亲⼉⼦⼿机。
但因为⾕歌的亲⼉⼦在国内没有⾏货销售渠道,市场占有率更多的是国产⼿机,⽽修改国产⼿机系统内核的教程却很少,加之部分国产⼿机的安卓内核和主线 AOSP 存在些许差异,照搬原⽣安卓代码的修改⽅法⽆法在国产⼿机上实现某些功能,甚⾄⽆法编译成功。
所以本⽂以某国产⼿机为例,通过研究其内核源码,对关键代码进⾏分析、修改,编译内核、打包成刷机镜像,对全过程予以展⽰。
0x01 常见反调试⼿段及对抗策略简介在安卓程序的开发过程中,反调试的⼿段有很多种,简单列举若⼲:(1) 检测特定进程或端⼝号。
如 IDA Pro 在对安卓应⽤进⾏调试时,需要在⼿机端启动调试程序 android_server ,该调试程序默认开启端⼝23946。
⽬标程序若发现⼿机⾥有 android_server 进程或开启了端⼝23946,⽬标程序就⾃动退出,以达到反调试的⽬的。
(2)检测某些关键⽂件的状态。
如⽬标程序在调试状态时,Linux内核会向部分系统⽂件内写⼊⼀些进程状态信息,包括但不限于向 “ /proc/⽬标程序pid/status ” 这⼀⽂件的 TracerPid 字段写⼊调试进程的 pid 。
有部分程序会检查这些字段,⽐如⽬标程序发现对应的 TracerPid 不等于 0 ,则说明⾃⼰本⾝正在被别的程序调试,⽐如:(Pid为19707的进程正在被Pid为24741的进程调试)(3)检测软件断点。
Android逆向⼯具篇—反编译⼯具的选择与使⽤作者 | 天天记⼩本⼦上的lilac 来源 | CSDN今天给⼤家介绍⼀下Android App 在Java层的逆向⼯具。
逆向⼯具的介绍在过去,当我们想要了解⼀个 app 内部运作细节时,往往先通过 ApkTool 反编译 APK,⽣成 smali 格式的反汇编代码[1],然后⼤佬和⽼⼿直接阅读 smali 代码,适当的进⾏修改、插桩、调试,经过⼀定的经验和猜想,理解程序的运⾏逻辑和加解密细节,⽐如如下的 smali 代码。
smail我们只要先这样,再那样,最后再这样,对对对,就这样,⼀个程序的加密就被破解出来了。
是不是迫不及待想来⼀次App的逆向之旅了?事实上,这种⽅式对⼩⽩实在不友好,有没有更加友好的⽅式呢?当然是有的,如果你百度或者 google 搜索逆向相关的教程和分享,很容易就会发现下⾯这三个⼯具。
在介绍⼯具之前,我们先补充⼀下APK结构的知识,我们以伊对这个社交 Apk 为例。
APK ⽂件其实是⼀种特殊的 zip 格式,我们可以直接⽤ 360 压缩或者别的压缩⼯具打开。
为了满⾜⾃⾝的功能和设计,⼏乎每⼀个都会在基础的⽂件结构上添加不少东西,但有六个部分是不变的,我们罗列和称述⼀下。
⽂件或⽬录作⽤META-INF/描述apk包信息的⽬录,主要存放了签名信息,配置信息,service注册信息res/存放apk资源⽂件的⽬录,⽐如图⽚、图标、字符串、样式、颜⾊assets/同样是存放apk资源⽂件的⽬录,但和res有差异,和我们关系不⼤resources.arsc资源索引,包含不同语⾔环境中res⽬录下所有资源的类型、名称与ID所对应的信息lib/存放so⽂件,越来越多的应⽤由C/C++编写核⼼代码,以SO⽂件的形式供上层JAVA代码调⽤,以保证安全性,这个⽬录是逆向解密关注的重点classes.dex(⼀个或数个)Android程序运⾏在Dalvik虚拟机上,⽽dex就是Dalvik虚拟机的可执⾏⽂件, 相当于Windows平台中的exe⽂件,通过反编译dex,可以获得apk源码(这个说法不很准确,但⽅便理解)AndroidManifest.xml清单⽂件,包含了App⼤量的的配置信息,⽐如包名、应⽤需要拥有的权限(打电话/录⾳/⽹络通信等等)、以及所有的界⾯和程序组件的信息,⽆法解压apk时直接打开,因为清单⽂件在apk打包过程中被编译成了⼆进制格式⽂件接下来我们介绍以下反编译⼯具,看⼀下反编译⼯具的作⽤⼯具作⽤ApkTool解析resources.arsc,AndroidManifest.xml等⽂件,反编译dex⽂件为smali源码Dex2jar将dex⽂件转化为jar⽂件Jd-gui反编译jar,查看java源码⽐如使⽤ Dex2jar+Jd-gui, 最终得到这样的结果。
在Android开发过程中,当我们只需要编译某个修改过的模块时,使用mm命令可以使你不用编译整个Android项目,而只需单独编译该模块即可,这样速度是不是很快呢?具体的步骤如下:1. 在Android源代码目录下:[c-sharp]view plaincopy1cd mydroid2source build/envsetup.sh也可以将source ~/mydroid/build/envsetup.sh放到~/.bashrc中,这样每次打开shell时就会自动运行该脚本。
2. 在shell中使用help命令查看可以运行的命令[c-sharp]view plaincopy3# help4Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:5- croot: Changes directory to the top of the tree.6- m: Makes from the top of the tree.7- mm: Builds all of the modules in the current directory.8- mmm: Builds all of the modules in the supplied directories.9- cgrep: Greps on all local C/C++ files.10- jgrep: Greps on all local Java files.11- resgrep: Greps on all local res/*.xml files.12- godir: Go to the directory containing a file.1314Look at the source to view more functions. The complete list is:15add_lunch_combo cgrep check_product check_variant choosecombo chooseproduct choosetype choosevariant cproj croot findmakefile gdbclient get_abs_build_var getbugreports get_build_var getprebuilt gettop godir help isviewserverstarted jgreplunch m mm mmm pid printconfig print_lunch_menu resgrep runhat runtest set_java_home setpaths set_sequence_number set_stuff_for_environment settitle smoketeststartviewserver stopviewserver systemstack tapas tracedmdump可以看到mm命令,意思是编译当前文件夹下的所有模块。
⾃⼰动⼿编译Android(LineageOS)源码⼀、编译LineageOS源码准备设备:⼩⽶ MIX2设备代号:chironAndroid版本:9.0PC配置:系统:Ubuntu18.04⾄少12G RAM⾄少200GB 剩余硬盘空间良好的⽹络环境1.下载并解压SDKsdk中包含fastboot和adb下载wget https:///android/repository/platform-tools-latest-linux.zip解压unzip platform-tools-latest-linux.zip -d ~添加到环境变量gedit ~/.profile输⼊:# add Android SDK platform tools to pathif [ -d "$HOME/platform-tools" ] ; thenPATH="$HOME/platform-tools:$PATH"fi保存。
使改动⽣效:source ~/.profile2.安装依赖安装必要库和⼯具sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev安装openjdk-8-jdksudo apt install -y openjdk-8-jdk3.配置源创建repo存放⽬录mkdir -p ~/bin创建源码存放⽬录mkdir -p ~/android/lineage× 注:请确保该⽬录所在的磁盘有⾜够的空间(⾄少200G)安装repocurl https:///git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo将~/bin放⼊环境变量gedit ~/.profile加⼊:# set PATH so it includes user's private bin if it existsif [ -d "$HOME/bin" ] ; thenPATH="$HOME/bin:$PATH"fi使改动⽣效:source ~/.profile初始化repocd ~/android/lineagerepo init -u https:///LineageOS/android.git -b lineage-16.0× 注:这⾥的lineage-16.0是分⽀名,对应Android 9.0。
android hal文件编译规则
Android HAL (Hardware Abstraction Layer) 文件是 Android 系统中的一种接口定义文件,用于描述硬件设备与 Android 系统之间的交互方式。
为了在 Android 系统中使用这些硬件设备,需要进行相应的 HAL 文件编译。
在 Android 系统中,HAL 文件的编译规则主要包括以下几个步骤:
1. 编写 HAL 文件:首先需要编写相应的 HAL 文件,该文件描述了硬件设备的接口、属性、方法等信息。
编写完成后,需要将其放置在 Android 源代码的对应目录下。
2. 编译 HAL 文件:在 Android 源代码的编译过程中,会自动编译所有的HAL 文件。
编译后的 HAL 文件会被生成到 Android 系统的输出目录中,通常是 out/target/product/<device_name>/system/lib/hw/。
3. 将 HAL 文件安装到设备:在将 Android 系统镜像烧写到设备后,需要将编译好的 HAL 文件复制到设备的对应目录下。
具体路径可以根据实际情况而定,但通常是在 /system/lib/hw/ 目录下。
4. 配置系统参数:在启动 Android 系统时,需要配置相应的系统参数,以加载相应的 HAL 模块。
具体的配置方式可以通过修改文件或者在启动参数中添加相应的参数来实现。
需要注意的是,具体的编译规则和步骤可能会因不同的 Android 版本和设备厂商而有所不同。
因此,在实际操作过程中,建议参考具体的 Android 版本和设备厂商提供的文档和指南。
Android4.1.4编译1、下载源码:我是在ics版本的基础上通过repo sync更新,发现有了android 4_1_r1的分支,等待更新完,repo branch 切换分支,然后. Build/envsetup.she 然后lunch 1 选择full-eng 最后make ,过一会报错。
提示:build/core/product_config.mk:193: *** _nic.PRODUCTS.[[build/target/product/vbox_x86.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.** Don't have a product spec for: 'full'** Do you have the right repo manifest?Google baidu bing了大半天终于在android的bug单中找到了这条bug,解答是源码不全。
愁了半天,repo sync 都是最新的,愁了半天,最后再ics的repo中重新下了个android4.1.4的分支。
repo init -u https:///platform/manifest -b android-4.1.1_r4repo sync下载3个小时,终于下载完成,本来下载源码需要很长时间5~10个小时,由于再ics的基础上下载,只需要把patch下载就行了(repo会自动完成)。
兴奋啊,赶紧.Build/envsetup.shlunch 1 full-eng警告:/bin/bash:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件/bin/bash:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件/bin/bash:prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件先没管它,继续机制行make cleanmake -j8过了几分钟提示错误:host StaticLib: libhost (out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a)ERROR:prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linu x-ar only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a] 错误 1host C: emulator-target-i386 <= external/qemu/cpus.chost C: emulator-target-i386 <= external/qemu/arch_init.chost C: emulator-target-i386 <= external/qemu/os-posix.chost C: emulator-target-i386 <= external/qemu/oslib-posix.chost C: emulator64-arm <= external/qemu/audio/audio.chost C: emulator64-arm <= external/qemu/disas.cERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/EXECUTABLES/emulator64-arm_intermediates/disas.o] Error 1make: *** Waiting for unfinished jobs....ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linuxmake: *** [out/host/linux-x86/obj/EXECUTABLES/emulator64-arm_intermediates/audio/audio.o] Error 1又陷入郁闷,google baidu了好半天,都没找到解决方案,不过找到了提示,就是谷歌推荐使用64位的ubuntu 10.04 来编译,很多配置都是基于64来的,所以32位系统编译会遇到很多问题。
天啦,难道我要重装ubuntu?软件,vim,java 编译环境都需要重新配置,工程浩大。
找了半天实在找不到解决方案,只好去硬着头皮去下载了64位ubuntu,安装过程如下:下载64位ubuntu ubuntu-10.10-desktop-amd64.iso amd代表64位名称,并非只使用amd处理器。
把它放在F盘,并解压出其中Casper下的vmlinuz和initrd.gz 放到ISO同盘根目录下载grub4dos 解压出menu.lst和grldr.mgr把它门都放在C盘配置windows启动项,发现win7的c盘下找不到boot.ini 原来win7启动配置跟xp不一样,搜了下找到一下方法:开始菜单->运行->输入CMD,命令提示符下如下操作:bcdedit /create /d "GRUB4DOS" /application bootsector命令结果应该会返回一个GUID,后面的命令用到这个GUIDbcdedit /set {GUID} device partition=C:bcdedit /set {GUID} path \grldr.mbrbcdedit /displayorder {GUID} /addlast等安装完成之后可以使用bcdedit /delete {GUID}将GRUB4DOS的启动项删除,GRUB4DOS启动项的GUID可使用bcdedit /v查看。
然后重启进入grub 然后选择commandline进入命令行依次root各个分区找到放iso的盘例如xroot(hd0,x) x=0,1,2,。
ls 查看是否有iso 记下x。
找到iso后执行kernel (hd0,x)/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.10-desktop-amd64.iso local=zh_CN.UTF-8initrd (hd0,x)/initrd.lzboot这样就启动了临时ubuntu,可以执行安装了,我选择在原来32位的ubuntu上覆盖,这样有些配置不会丢失,文件也不会丢失,除非是系统原生的。
花了半个小时终于搞定。
然后开始下载64位的jdk,发现有新版本,就下了个1.7 然后修改~/.bashrc安装装一些环境变量JAVA_HOME=/soft/jdk1.7.0PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib#export PATHexport CLASSPATH1. sudo apt-get install build-essential2. sudo apt-get install make3. sudo apt-get install gcc4. sudo apt-get install g++5. sudo apt-get install libc6-dev6.7. sudo apt-get install patch8. sudo apt-get install texinfo9. sudo apt-get install libncurses-dev10.11. sudo apt-get install git-core gnupg12. sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev zip curl13. sudo apt-get install ncurses-dev14. sudo apt-get install zlib1g-dev15. sudo apt-get install valgrind16. sudo apt-get install python顺便也下载了最新版本eclipse 64位版本一切都就绪了,开始编译,编到几分钟报错:javac 1.7版本冲突,只好又去下载了jdk1.6 的64位版本,重新配置了下~/.bashrc java路径。
然后开始继续编译。
过了10分钟郁闷的又报错了,提示:error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory。