Ubuntu下使用Eclipse IDE for C/C++ Developers交叉编译和调试


 1、下载JDk和Eclipse

首先我们下载Eclipse IDE for C/C++ Developers,

地址

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/2/eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz

下载完后,打开进入eclipse目录打开eclipse,提示“Version 1.5.0of the JVM is not suitable for this product. Version: 1.7 or greater isrequired.”。

我们需要更高版本的JDK。

官网下载jdk-7u67-linux-x64.rpm。

2、安装和配置JDK

 

2.1 安装

下载jdk-7u67-linux-x64.rpm后,由于Ubuntu不支持rpm安装,我们要将rpm转换为    deb安装

sudo apt-get install alien #alien默认没有安装,所以首先要安装它

sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成一个同名的xxxx.deb

sudo dpkg -i xxxx.deb #安装

2.2 配置

由于ubuntu下自带了gij的JVM实现,所以在终端键入“java -version”时会显示:java version "1.6.0"......等相关信息。这是说系统中已经有了JVM实现,而且gij JVM是默认的JVM实现(被其他的ubuntu工具或软件使用)。这时,就要使用Debian提供的“update-alternatives”工具来完成多版本实现的选择。

sudo update-alternatives  --display java

发现系统只列举了gijJVM;因为jdk7是手动解压安装的。

我们需要输入以下指令:

{

wen@wen-machine:/usr/bin$ sudo update-alternatives  --install  /usr/bin/java java /usr/java/jdk1.7.0_67/bin/java 2048

wen@wen-machine:/usr/bin$ sudo update-alternatives  --install  /usr/bin/javac javac /usr/java/jdk1.7.0_67/bin/javac 2048

update-alternatives: using /usr/java/jdk1.7.0_67/bin/javacto provide /usr/bin/javac (javac) in auto mode

wen@wen-machine:/usr/bin$ sudo update-alternatives --install /usr/bin/javah javah /usr/java/jdk1.7.0_67/bin/javah 2048

update-alternatives: using /usr/java/jdk1.7.0_67/bin/javahto provide /usr/bin/javah (javah) in auto mode

wen@wen-machine:/usr/bin$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.7.0_67/bin/javaws 2048

wen@wen-machine:/usr/bin$ sudo update-alternatives --install /usr/bin/javap javap /usr/java/jdk1.7.0_67/bin/javap 2048

}

其实只要设置java、javac也是OK的。行尾的2048是优先级。

然后输入 sudo  update-alternatives  --config java  选择刚刚安装的JDK


检查配置update-alternatives --display java

2.3 配置环境变量

gedit ~/.bashrc

在打开的文件的末尾添加

export  JAVA_HOME=/usr/java/jdk1.7.0_67

export  JRE_HOME=${JAVA_HOME}/jre

export  CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export  PATH=${JAVA_HOME}/bin:$PATH

2.4 遇到的问题

问题1、安装后敲java -version出现:Error occurred duringinitialization of VM java/lang/提示信息

解决:

       出现该问题的原因是:

            JAVA_HOME/lib中的tools.pack没有被解压成tools.jar

            JAVA_HOME/jre/lib中的rt.pack没有被解压成rt.jar

       解决的方法是:

              切换到root用户,否则会失败~(su root),  找不到unpack200的话,在JAVA_HOME/bin里也有

               进入到JAVA_HOME/lib中,将tools.pack解压成tools.jar,执行:

               unpack200   tools.pack tools.jar

               进入到JAVA_HOME/jre/lib中,将rt.pack解压成rt.jar:

               unpack200  rt.pack rt.jar

2.5 检查java版本:

java -version  发现已经是 java version 1.7.0了 OK。

 

 

3、启动eclipse

3.1 初始化

在终端里打开eclipse前,需要先初始化一下环境变量,然后再打开eclipse

3.2 需要解决的问题

在终端里打开eclipse,发现出错:

I      nternal error: SHA-1 not available.

提示,SHA-1这个算法无法找到,但这个是jdk系统提供的一个算法。包含在JAVA_HOME/jre/lib/jsse.jar中。

打开想要的目录查看,结果只有一个jsse.pack,而没有jsse.jar。 这也是异常抛出的原因了,使用unpack200进行对应jar包的解压。

unpack200  jsse.pack  jsse.jar 

注意切换到root用户,否则会失败~(su root),  找不到unpack200的话,在JAVA_HOME/bin里也有

4、安装EclipseRemote System Explorer (RSE)

 

4.1、下载RSE

地址:http://download.eclipse.org/tm/downloads/drops/R-3.3.2-201202061000/

下载RSE-runtime-3.3.2.zip(Recommended for most users)

4.2、安装到eclipse(3.4版本以上)

解压RSE压缩包,直接把里面的内容复制到eclipse的根目录

4.3、打开eclipse并配置

新建-》项目-》RSE-》connection


选择SSH


填入IP,名字 (这个IP是开发板通过dhclent eth0指令请求,PC给它分配的IP

将eclipse的工作目录,切换到RSE

找到10.10.0.52,右键进入Properties,然后输入IP地址

右键连接,然后输入远端用户名和密码,同步完成

 

5、添加makefile工程和调试

 

5.1 添加工程

进入新建工程,选择c/c++选项里的makefile project with existing code


找到相应的makefile,加入就会自动生成工程了。

5.2 调试

这里以telechips的launcher为例

选择Debug As的Debug Configuration...

在Main选项卡里,C/C++Application里填写在PC端我们的Application的位置,将Connection选为刚才RSE设置的10.10.0.52,Remote Absolute File Path For C/C++Application选择远端的位置(注意:是Application的位置,不是它的目录位置)。

 


在Arguments选项卡里,加上-plugin Tslib

在Debugger选项卡里的main子选项卡里添加上telechips的GDB

在Debugger选项卡里的Gdbserver Settings子选项卡里写上gdbserver和prot口2345


大功告成,现在就可以调试了,记得保存配置(下图右下角Apply保存,Debug调试)


如果是主launcher的话,记得先kill掉原来正在运行的launcher~

6、利用RSE远程操控文件

Step 1将eclipse的工作目录切换到RSE

 

Step 2 选择Remote System里面的10.10.0.52选项里的Sftp,点开Root。然后在弹出框里输入远端的用户名、密码。

 

Step 3 然后就可以直接修改和拷贝、删除远端文件了


猜你喜欢

转载自blog.csdn.net/miller1026/article/details/51029884