# 在Ubuntu-x64bit 下编译GCC 4.8.2

java.net 提供与联网有关的类,包括流和数据包(datagram)sockets、Internet
协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java
开发人员可以立即使用这个熟悉的包创建应用程序。

       
已经在Ubuntu12.04上成功编译了openni的库,为了研究点云数据,还需要安装PCL库。按照官网上的说法()使用apt-get的方式安装,但是总是提示安装所依赖的其他库未安装,纠结了许久未安装成功,所以决定使用源码进行编译安装。

之前就有在Ubuntu
14.04下编译Android源码的想法,但是由于网络的原因,又没有梯子,连开发工具都是经过androiddevtools从百度云弄下来的,前两天发现了清华大学AOSP的镜像站点,就想着从上面git
android
源码,然后编译。在这里做个简单的记录,和大家分享一下,毕竟小水管不容易,下载源码加编译花了接近两天。

# 安装必要的软件包
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install gawk
sudo apt-get instll m4
sudo apt-get install gcc-multilib
sudo apt-get install binutils
sudo apt-get install lzip

java.io 虽然没有提供显式的联网功能,但是仍然非常重要。该包中的类由其他
Java 包中提供的 socket
和连接使用。它们还用于与本地文件(在与网络进行交互时会经常出现)的交互。

         一、下载源代码

       
可以直接从官网上下载:

        也可以使用svn进行下载:

svn co http://svn.pointclouds.org/pcl/trunk pcl-trunk

       
 注:现在官网上的最稳定版本是1.6,用svn下载的是处于开发阶段的1.7版本

1.安装openjdk-7-jdk

# 新建GCC目录
cd ~
mkdir GCC && cd GCC

java.nio 包含表示特定数据类型的缓冲区的类。适合用于两个基于 Java
语言的端点之间的通信。

         二、安装依赖库

       
 根据官网的说明,PCL必须要依赖以下库:

                 
  图片 1

         
所以必须要确定PC上已经安装了这些库,如果没有安装,使用以下命令进行安装:

sudo apt-get install lib*   //(*代表所需要安装的库)
$  sudo apt-get install openjdk-7-jdk

# 下载GCC-4.8.2源码:
# 下载三个必须的库gmp、mpfr、mpc;根据依赖关系:mpfr依赖于gmp,
mpc依赖于gmp和mpfr
# 先安装gmp,再安装mpfr,然后安装mpc,最后安装gcc
# gmp :
# mpfr :
# mpc :

#
# gmp
wget
# mpfr
wget
# mpc
wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz
# gcc-4.8.2
wget

org.apache.* 表示许多为 HTTP 通信提供精确控制和功能的包。可以将 Apache
视为流行的开源 Web 服务器。

          三、编译安装

         
编译安装的方法在官网上都有介绍()。

         
解压代码,创建编译文件夹:

cd PCL-1.6.0 && mkdir build && cd build

          使用cmake生成makefile

cmake -DCMAKE_BUILD_TYPE=Release .. 

         
在这一步,cmake会自动检测PCL的依赖包是否已经安装,而且可以检测出这些依赖包的版本。如果检测没有问题,会自动生成makefile。

make

         
一开始,我在这一步总是编译失败(见),后来发现是boost库的问题,我是用的是1.53的,可能是太新了。使用apt-get的方法安装boost1.46.1也不行,cmake检测出来的boost版本还是1.53的。最后在网上( )直接下载的deb包安装就没有问题了。不过boost的包很多,不许要全部安装,根据make的错误提示安装就行了。

         
编译通过以后就可以安装了。

sudo make install

安装好之后修改 /etc/profile 中的环境变量,将openjdk加入到JAVA_HOME中

# 解压 gmp
lzip -d gmp-5.1.3.tar.lz
tar -xvf gmp-5.1.3.tar -C gmp
# 解压mpfr
tar -Jxvf mpfr-3.1.2.tar.xz -C mpfr
# 解压mpc
tar -zxvf mpc-1.0.2.tar.gz -C mpc
# 解压GCC
tar -jxvf gcc-4.8.2.tar.bz2 -C gcc

Android.net 除核心
java.net.* 类以外,包含额外的网络访问 socket。该包包括 URI
类,后者频繁用于 Android 应用程序开发,而不仅仅是传统的联网方面。

          四、测试

         
安装完毕后,默认在/usr/local/share/doc/pcl_1.6/sources路径下有例程。进入openni_grabber文件夹,里面有代码和cmake文件。进行编译:

sudo cmake .

sudo make

./openni_grabber

         
编译没有问题,PCL安装应该没有问题,但是运行结果如下:

图片 2

       
 这个是不是有问题呀,我试了openni_narf_keypoint_extraction和openni_range_image_visualization两个例程,也没有kinect的数据,是不是什么地方有问题,还请高手赐教~~多谢

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

###############
# 开始编译    #
###############

android.net.http 包含处理 SSL 证书的类。

     五、测试修改

 
      终于发现了前边kinect数据显示错误的问题,原来是那些例程包里cmake文件中链接的pcl版本不对,pcl1.6的例程链接的竟然是1.2和1.3的,真是bug~~~所以在编译之前,修改cmake文件中的链接版本:

find_package(PCL 1.6 REQUIRED)

            然后再进行编译就没有问题了。几个例程的显示效果如下:
 
       1、openni_viewer:
图片 3 
 
       2、openni_narf_keypoint_extraction:
图片 4 
        3、openni_range_image_visualization:
图片 5 


欢迎大家转载我的文章。

转载请注明:转自古-月

欢迎继续关注我的博客

我因为之前就有装过Oracle
jdk,就直接把Open Jdk 附在了后面

# 编译gmp库,安装到/usr/gcc_4_8目录,以x86_64-linux-gnu内核
cd gmp
mkdir build && cd build
../configure –prefix=/usr/gcc_4_8 –build=x86_64-linux-gnu
make
sudo make install

android.net.wifi 包含在 Android 平台上管理有关 WiFi(802.11 无线
Ethernet)所有方面的类。并不是所有设备都配备了 WiFi 功能,特别是 Android
在 Motorola 和 LG 等手机制造商的 “翻盖手机” 领域获得了成功。

图片 6

#
编译mpfr库,安装到/usr/gcc_4_8目录,以x86_64-linux-gnu内核,以gmp库
cd ..
cd ..
cd mpfr
mkdir build && cd build
../configure –build=x86_64-linux-gnu –prefix=/usr/gcc_4_8
–with-gmp=/usr/gcc_4_8
make
sudo make install

android.telephony.gsm 包含用于管理和发送
SMS(文本)消息的类。一段时间后,www.linuxidc.com可能会引入额外的包来来为非
GSM 网络提供类似的功能,比如 CDMA 或 android.telephony.cdma 等网络。

然后使修改的配置文件立即生效:

# 编译mpc库,依赖gmp、mpfr,内核。。。
cd ..
cd ..
cd mpc
mkdir build && cd build
../configure –build=x86_64-linux-gnu –prefix=/usr/gcc_4_8
–with-gmp=/usr/gcc_4_8 –with-mpfr=/usr/gcc_4_8
make
sudo make install

下面介绍在Ubuntu
10.04下如何编译Android源码。

$  .  /etc/profile

#####################
#  准备编译GCC源码  #
#####################

根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里我们使用jdk5。下载后jdk1.5.0_22.bin文件,首先更改文件权限为可执行
chmod u+x jdk1.5.0_22.bin,而后执行[sudo
./jdk1.5.0_22.bin。安装完毕后设置环境变量

查看java 这时使用的jdk 就是Open Jdk

# 接下来开始编译C/C++和Fortran编译器
cd ..
cd ..
mkdir build && cd build
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/
export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
../gcc/configure –build=x86_64-linux-gnu –prefix=/usr/gcc_4_8
–with-gmp=/usr/gcc_4_8 –with-mpfr=/usr/gcc_4_8
–with-mpc=/usr/gcc_4_8 –enable-checking=release
–enable-languages=c,c++,fortran –disable-multilib
–program-suffix=-4.8
make
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
sudo make install

执行sudo gedit /etc/profile

图片 7

##########################################
#  至此,Gcc已经安装完成,下面配置系统路径#
##########################################

在该文件中设置环境变量

接下来安装必备的工具软件

# 下面命令可将gcc
4.8添加到系统路径,或者直接编辑home目录下.bashrc文件,在最后添加下面一行
export PATH=/usr/gcc_4_8/bin:$PATH

#set java environment

$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-de

# 调用编译器的简单方法
g++-4.8 test.cpp -o test

JAVA_HOME=/home/stone/jdk1.5.0_22

注意,上面使官方的需要安装的包,但是在实际中,我安装的时候报错了,

# 可将源码删除
# rm -rf gmp mpfr mpc gcc

export JRE_HOME=/home/stone/jdk1.5.0_22/jre

ERROR:
unity-control-center : 依赖: libcheese-gtk23 (>= 3.4.0) 但是它将不会被安装
                       依赖: libcheese7 (>= 3.0.1) 但是它将不会被安装

# 其他资料:
在配置之前先讲解一下,要用到的配置是什么意思:
–target=  生成的目标系统  #在编译主机用的不需要配置这个
–build=    编译的机器的类型  #这个可以说是必须要修改的
–host=    主机的类型          #这个参数不需要用到
–prefix=  安装的目录          #这个一定要配置
–enable-languages=  这个是配置生成的程序,支持什么语言的编译器 
#这个要配置,防止生成的文件成多。参数过多造成编译不通过
–disable-werror        这个是关闭提醒  #不一定需要。
–enable-ld=[yes,no]    这个是联合binutils编译的时候用到的。
#如果只编译这个GCC.这个可以省略
–enable-gold=[yes,no]    这个是联合binutils编译的时候用到的。
#只编译GCC 不需要用到这个。
–program-suffix=      这个是程序的后序         
#为了区别与系统自带的gcc建议加上这个
–program-transform-name=  这个是用来生成个性化的 gcc
命名规则。#如果使用了这个,可以不用上面的–program-suffix 这个选项
–disable-multilib        关闭使用跨平台的库          #建设使用这个选项

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

这里的报错是因为是由 libgl1-mesa-glx:i386
报引起的,需要替换掉,更改为:

在Ubuntu-x64bit 下编译GCC 4.8.2 #
安装必要的软件包 sudo apt-get update sudo apt-get install gcc sudo
apt-get install g++ sudo apt-get install gawk sudo apt-get
instll…

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

$ sudo apt-get install libgl1-mesa-glx-lts-quantal:i386

该段代码最好设置在文件的尾部。

接下来配置Cache,使用下面两条命令

设置完毕,保存。重启系统。

$ sudo apt-get install ccache  
$ source  ~/.bashrc  

此时java -version可以看到更改的效果。

然后就是下载repo :

而后到下载的源码文件目录下执行make命令,此时会出现错误。故在编译之前进行相关软件的安装,需要安装的软件有:

首先创建repo 目录

1、sudo apt-get install build-essential

$ mkdir ~/bin  
$ PATH=~/bin:$PATH  

2、sudo apt-get install zlib1g-dev

然后就是下载repo,google官方被墙了,这里用的是清华大学镜像的:

3、sudo apt-get install flex

$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/ 

4、sudo apt-get install libncurses-dev

然后将git-repo 目录中的repo 文件拷贝到 bin目录

5、sudo apt-get install libx11-dev

$ cp  git-repo/repo  ~/bin/  

6、sudo apt-get install gperf。

接下来打开bin目录下的repo 文件,修改其中的  REPO_URL 参数,修改为:

执行完这些软件的安装,而后make编译。

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo' 

此时就是慢慢的等待编译的结果吧。

接下来就需要初始化repo:

图片 8

先创建目录aosp,就是等会要存放android源码的目录

$ mkdir ~/aosp  

进入到aosp目录中

$ cd ~/aosp

初始化repo,最新的android
都可以进行下载,以下三条命令任意执行一条就可以了,会下载不同版本的android源码,我采用的是android-5.1.1

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-6.0.1_r22

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-n-preview-1

在初始化的时候会要求输入名字和邮箱,正常输入就可以了。

最耗时间的步骤来了,下载android源码

$ repo sync  

我在同步的过程中有好几次出现Error,不用管,加上参数 -f 继续同步

$ repo sync -f

这个过程是很漫长的,我的小水管用了一天多才同步完成。

下载完成之后就是编译了,我的计算机是双核4线程,编译的还比较快,用了差不多5个小时编译完成:

1) 设置cache

$ cd aosp  
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G  

2) 初始化编译环境

$ . build/envsetup.sh

3)选择编译目标包

      有很多中,可以用lunch命令查看,我选择的是最常用的arm

$ lunch aosp_arm-eng   

4)编译

可以在 make 后设置参数,加快编译速度,我用的是

$ make -j4

表示4个线程进行编译,因为我的计算机是双核4线程,如果机器配置更好,可以开更多的线程,减少编译时间

make 失败或停止后,可以使用make -k 继续编译,不过我是一次就编译成功了。

编译成功之后

图片 9

会在aosp目录下编译产生out目录

然后就可以运行编译产生的模拟器了:

$ emulator &

图片 10

运行的结果就是这样:

图片 11

Ubuntu 14.04 搭建Android开发环境 
http://www.linuxidc.com/Linux/2014-05/101149.htm

Ubuntu
14.04搭建Android5.1开发环境和编译

http://www.linuxidc.com/Linux/2015-07/119759.htm

Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法
http://www.linuxidc.com/Linux/2014-05/101148.htm 

Ubuntu 12.04搭建Android开发环境
http://www.linuxidc.com/Linux/2012-09/69961.htm 

Ubuntu 14.04 配置 Android SDK 开发环境
http://www.linuxidc.com/Linux/2014-05/101039.htm 

64位Ubuntu 11.10下Android开发环境的搭建(JDK+Eclipse+ADT+Android SDK详细)
http://www.linuxidc.com/Linux/2013-06/85303.htm 

Ubuntu 12.10 x64 安装 Android SDK
http://www.linuxidc.com/Linux/2013-03/82005.htm 

更多Android相关信息见Android 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=11

更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130698.htm

图片 12

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图