首页 > 代码库 > C/C++下eclipse的配置

C/C++下eclipse的配置

目录

目录1

1.1 JDK安装2

1.2 eclipse安装2

2 eclipse工程管理2

2.1 使用工程中自带的Makefile3

2.2 采用IDE自动生成Makefile4

2.3  eclipse 添加现有工程7

3 eclipse工程配置8

3.1 编译工具链8

3.1.1 添加配置项 8

3.1.2 设置编译工具 9

3.2 头文件、链接库11

3.2.1 头文件路径 11

3.2.2 链接库名 12

3.2.3 链接库路径 13

3.3 其他实用设置14

3.3.1 选择编程语言的标准 14

3.3.2 添加编译前后执行的命令 15

3.3.3 修改字体大小 16

3.3.4 记录编译号 17

3.3.5 自动格式化对齐 18

4 eclipse 代码调试18

4.1 本地调试18

4.2 远程调试20

4.2.1 gdbserver调试工具安装 20

4.2.2  eclipse远程调试设置 20

4.2.3 运行远程调试 22

5 代码静态检查工具CPPCheck24

5.1 cppcheck介绍24

5.2 安装24

5.3 cppcheck使用24

5.4 常见错误结果举例25

附录27

常用快捷键27

自定义快捷键27

 

1 eclipse开发环境搭建

Eclipse需要运行在java环境下,所以需要安装JDK

 

1.1 JDK安装

JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

例程使用的jdk版本是1.8.0java解压就能用,只需做个链接文件到/usr/bin目录使得在任意位置都能使用即可。说明:$是命令提示符,~/是用户目录,本文档介绍的软件放在~/tools目录。

$tar -zxvf jdk-8u51-linux-i586.gz (解压)

$cd /usr/bin(进入/usr/bin目录)

$sudo ln -s ~/tools/jdk1.8.0_51/bin/java java(创建链接文件)

$java -version  (测试命令,输出以下信息表示JDK配置成功)

java version "1.8.0_51"

Java(TM) SE Runtime Environment (build 1.8.0_51-b16)

Java HotSpot(TM) Client VM (build 25.51-b03, mixed mode)

 

1.2 eclipse安装

下载地址:http://www.eclipse.org/downloads/

我们需要使用的编程语言是C/C++,所以下载时选择Eclipse IDE for C/C++ Developers这个版本。

eclipse解压就能用,只需做个链接文件到/usr/bin目录使得在任意位置都能使用即可。说明:$是命令提示符,~/是用户目录,本文档介绍的软件放在~/tools目录。

$tar -zxvf eclipse-cpp-mars-R-linux-x86-gtk.tar.gz(解压)

$cd /usr/bin (进入/usr/bin目录)

$ sudo ln -s ~/tool-soft/eclipse/eclipse eclipse (创建链接文件)

$ eclipse &(在后台运行软件,也可以在桌面双击打开软件)

创建桌面快捷方式:

$sudo vim /usr/share/applications/eclipse.desktop 新建文件写如下内容:

[Desktop Entry]

Name=eclipse                                      Comment=Eclipse IDE 

Exec=/home/lgc/tools/eclipse/eclipse      

Icon=/home/lgc/tools/eclipse/icon.xpm    

Type=Application

Categories=Utility

保存之后会在/usr/share/applications/里出现设置的eclipse图标,将图标复制到桌面即可。

 

 

2 eclipse工程管理

Eclipse第一次打开会提示选择工作目录,默认是在用户目录自动创建一个workspace目录作为工作目录,选择作为默认工作目录即可。本文的eclipse 工作目录是/home/plb/workspace/

 

2.1 使用工程中自带的Makefile

有时我们需要导入带有Makefile的工程,如:u-bootLinux内核源码等。

1)新建工程

方法:File->New->Makefile Project with Existing Code打开新建工程界面,

下图以u-boot源码工程为例:输入工程名,选择u-boot源码所在目录,选择工具链类型,点Finish即可。注意:源码不能放在eclipse工作目录(workspace)。

 

2)配置与编译

设置编译u-boot的参数,如在终端的编译命令为:

 

在工程名(u-boot)右键->Properties打开设置界面,填入make的参数

 

 

配置好之后点击顶部工具栏的小锤子编译按钮即可进行编译。

2.2 采用IDE自动生成Makefile

创建嵌入式工程主要配置交叉编译工具链,本文以创建C语言工程为了例。

1)新建工程

新建C言语工程:File->New->CProject;输入工程名,其他默认,如下图:

 

2)配置交叉编译工具链

Next到下面界面输入交叉编译工具链前缀和选择工具链所在路径。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3)新建文件

新建main.c源文件:在工程名点右键->New->Source File;输入文件名即可。

 

 

4)编译代码

编写好代码后点顶部工具栏的小锤子可以编译代码。

 

小结:到此新建工程已完成,编译成功后在工程目录的Debug目录下有与工程名相同的输出文件,将此文件拷贝到目标板运行即可。更多实用配置请看下文!

 

2.3  eclipse 添加现有工程

把工程拷贝到eclipse当前工作目录,如:/home/plb/workspace/

添加工程:File->Import->Existing Projects into Workspace->Browse选择被添加的工程。

 

点击Finish工程就添加好了。

小结:如果工程是自己新建的本地工程,编译工具、头文件路径、链接库路径都是配置好的,不用重新设置即可使用。否则需要对工程的编译工具等进行相关配置,配置方法见下文。

 

 

3 eclipse工程配置

使用过程中通常需要设置编译工具、用户头文件、链接库等信息。

3.1 编译工具链

3.1.1 添加配置项

在嵌入式编程中经常需要先在宿主机编译程序运行通过后再交叉编译到目标板运行。所有最好使用两个配置项,一个是主机Linux的,另一个是嵌入式Linux的。方法如下:

在工程名上右键->Properties->C/C++ Build->Manage Configuurations->New 输入名字点OK即可。编译时点开编译锤子右边的小三角形选择默认编译配置项。

 

 

3.1.2 设置编译工具

添加的配置arm配置项是复制原有的Debug配置项得来的。arm配置项作为嵌入式Linux的配置,Debug作为主机的配置。分别设置编译工具:

arm配置项:在工程名上右键->Properties->C/C++ Build->Tool Chain Editor->Current Toolchain选择Cross GCC;然后点Tool Chain Editor上一个选择Settings->Cross Settings Prefix输入交叉编译工具链的前缀,在Path选择交叉编译工具链的路径。注意:Configuration选的是arm

 

 

 

 

Debug配置项:在工程名上右键->Properties->C/C++ Build->Tool Chain Editor->Current Toolchain选择Linux GCC;编译工具使用默认的GCCG++等。注意Configuration选的是Debug

 

 

 

 

3.2 头文件、链接库

编译工具链自带的头文件和链接库在添加好编译工具链后会自动配置好,但是程序中自定义的头文件和使用到的链接库需要配置。

在工程名上右键->Properties->C/C++ General->Paths and Symbols 打开配置界面。

3.2.1 头文件路径

添加头文件路径:includes->Add->Workspace 在工程中选择头文件所在目录。点OK即可

注:languages里有不同语言的选项,一般根据具体情况选择,但最好全部都加上头文件的路径。此方法使用相对工程的路径,最好不要使用绝对路径,不然程序移到其他电脑时路径需要重新配置。

 

 

3.2.2 链接库名

添加链接库名配置:Libraries->Add 输入链接库名字(去掉lib.*),如libmsc.so 输入msc即可。所有编译时需要链接非标准库的都要加上,如:线程库pthread

 

 

 

3.2.3 链接库路径

工具链中包含的链接库不用重新设置路径。用户链接库路径配置:Library Paths->Add->Workspace 在工程中选择用到的链接库目录即可。

注:此方法使用相对工程的路径,最好不要使用绝对路径,不然程序移到其他电脑时路径需要重新配置。

 

 

3.3 其他实用设置

3.3.1 选择编程语言的标准

Eclipse默认的编程语言支持的标准不是最新的,需要以新标准编写代码时一定要选择新的标准,C++最好设置为C++11标准。

设置方法:在工程名上右键->Properties->C/C++ Build->Settings->Tool Settings->SettingsCross G++ Compiler->Dialect->Language standard 选择ISO C++ (-std=c++0x),点击OK

 

编译如需加入其他参数项可在Other dialect flags填写。

 

3.3.2 添加编译前后执行的命令

此项功能个人觉得非常有用,通过添加命令可是实现编译后将输出文件拷贝到指定目录;执行静态代码检查工具等功能。

配置方法:在工程名上右键->Properties->C/C++ Build->Settings->Build Steps

Pre-build steps是编译前执行的命令,Post-build steps是编译后执行的命令。在相应的Command里填写命令即可,多条命令用分号(;)隔开。如:编译之后将输出的执行文件(test)拷贝到/tftpboot目录下,在Post-build steps Command里写cp test /tftpboot

 

 

3.3.3 修改字体大小

方法:Window->Preferences->General->Appearance->Colors and Fonts->C/C++->Editor->C/C++ Editor.......->Edit 修改大小,点OK即可。

 

 

 

3.3.4 记录编译号

properties->C/C++ Build->Settings->Cross GCC Linker->Miscellaneous->Link flags

填写内容:

-Xlinker --defsym -Xlinker BUILD_VERSION=$$(cat $(BUILD_NUMBER_FILE))

BUILD_VERSION为变量名,BUILD_NUMBER_FILE为记录变量值得文件名。

 

编译前执行的命令(使BUILD_NUMBER_FILE文件里的数值加1):

if ! test -f $(BUILD_NUMBER_FILE);  then echo 0 > $(BUILD_NUMBER_FILE); else  echo $$(($$(cat $(BUILD_NUMBER_FILE)) + 1)) > $(BUILD_NUMBER_FILE);  fi ;

 

在程序中调用变量:

extern int BUILD_VERSION;

printf(“%d”, (int)(&BUILD_VERSION));   

 

 

3.3.5 自动格式化对齐

选择代码按快捷键:Ctrl+Shift+F

自定义规则:

Preferences –> C/C++ –> Code Style –> Formatter –> New 复制K&R[built-in]

Edit可以进行配置(左边选项)。

Braces->Function declaration->Next line(修改函数的开头大括号)

导出当前配置:Export  (xml格式)

导入配置:Import  (xml格式)

 

 

4 eclipse 代码调试

4.1 本地调试

Run->Debug Configurations->C/C++Application-> 配置调试,一般默认就能使用,但是最好看一下,做相应的配置。主要是选择需要调试的应用程序和调试工具。顶部工具栏的甲虫按钮是调试按钮,最好点开调试按钮右侧小三角选择相应的调试配置项运行调试。

 

1)选择调试程序

在本地调试的配置项选择需要调试的应用程序。

 

 

2)选择调试工具

一般默认就能用,但最好选择包含绝对路径的调试工具。

 

 

3)运行调试

点顶部工具栏调试按钮运行调试,如果不能正常运行,点开右侧小三角选择相应配置项运行。

 

 

调试完后点右上角的C/C++即可回到代码界面。

 

 

 

4.2 远程调试

远程调试是在主机上控制调试目标板上运行的程序,主要有串口和网络两种连接方式,本文介绍的是通过网络(TCP)的方式进行远程调试。调试需要使用gdb工具,所以通过交叉编译得到在目标板运行的gdbserver工具和在相应的在主机运行的gdb客户端。

4.2.1 gdbserver调试工具安装

下载地址:http://www.gnu.org/software/gdb/download/

1)制作主机端的gdb(一般交叉编译工具带有,不用制作)

$tar -zxvf gdb-7.10.tar.gz

$cd gdb-7.10/

$mkdir output

$./configure --target=arm-arago-linux-gnueabi --prefix=/home/g/tools/gdb-7.10/output

注:--target指定编译工具链,--prefix指定输出文件的目录

$make

$sudo make install

如果报错 WARNING: `makeinfo’ is missing on your system

是电脑缺少texinfo

安装texinfo:sudo apt-get install texinfo

$sudo make install

完成之后输出文件在gdb-7.10/output文件夹,gdb-7.10/output/bin/arm-arago-linux-gnueabi-gdb是主机上使用的。

2)制作目标板的gdbserver

$cd gdb/gdbserver/(进入gdb-7.10/gdb/gdbserver/)

$./configure --target=arm-arago-linux-gnueabi --host=arm-arago-linux-gnueabi

$make

编译完成后会在当前目录输出gdbserver文件,把gdbserver拷贝到目标板运行。

输出如下信息表示已完成gdb工具的制作:

$./gdbserver

Usage:  gdbserver [OPTIONS] COMM PROG [ARGS ...]

        gdbserver [OPTIONS] --attach COMM PID

        gdbserver [OPTIONS] --multi COMM

...............................

 

4.2.2  eclipse远程调试设置

Eclipse作为客户端连接到目标板的gdbserver,主要配置连接方式、调试工具、IP地址、端口等。

打开配置界面:Run->Debug Configurations->C/C++ Remote Application->右键New->Select other->Manual Remote

Eclipse默认是Automatic(自动模式的),配置为(Manual Remote)手动模式。具体配置请看下图:

 

->Debugger->Main->GDB debugger 选择安装好的arm-arago-linux-gnueabi-gdb调试工具

->Debugger->Shared Libraries 如果有用过其他链接库就加上,没有就不用配置

->Debugger->Connection-> Type选TCP、Host name or IP address 填上远程gdbserver的IP地址、Port number填上远程gdbserver的端口。具体配置看下图。

 

 

 

 

 

4.2.3 运行远程调试

先在目标板上运行gdbserver

$./gdbserver 172.16.31.88:1234 test 运行gdbservertest为调试的应用程序

Process test created; pid = 1032输出以下消息表示运行成功

Listening on port 1234

在配置好的eclipse上点调试Eclipse顶部工具栏的甲虫按钮是调试的,点开甲虫按钮右侧侧的小三角选择配置好的远程调试配置项运行调试。注意:直接点运行按钮,运行的不一定是远程调试配置,最好点开自己选。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 代码静态检查工具CPPCheck

5.1 cppcheck介绍

Cppcheck是一种C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,Cppcheck只检查编译器检查不出来的bug,不检查语法错误。作为编译器的一种补充检查,cppcheck对产品的源代码执行严格的逻辑检查。 执行的检查包括:
(1)自动变量检查
(2)数组的边界检查
(3)class类检查
(4)过期的函数,废弃函数调用检查
(5)异常内存使用,释放检查
(6)内存泄漏检查,主要是通过内存引用指针
(7)操作系统资源释放检查,中断,文件描述符等
(8)异常STL 函数使用检查
(9)代码格式错误,以及性能因素检查

官网下载地址:http://sourceforge.net/projects/cppcheck/files/cppcheck

5.2 安装

$tar -zxvf cppcheck-1.70.tar.gz

$cd cppcheck-1.70

$make SRCDIR=build CFGDIR=/home/user/tools/cppcheck-1.70/cfg/

$sudo make install

安装成功后cppcheck命令在/usr/bin目录下。

 

5.3 cppcheck使用

运行cppcheck -h可以得到参数的提示和使用范例!

1) 检查指定文件

文件为:main.cpp

cppcheck main.cpp                输出检查过程和错误信息

cppcheck --quiet main.cpp    不输出过程

cppcheck -I inc1/ main.cpp       包含inc1文件夹里的文件

cppcheck --enable=all main.cpp      使能所有检查

--enable指定当前指定的检查级别

 

2) 递归检查./目录下的所有源文件

cppcheck ./           递归检查当前目录下所有源文件

cppcheck -j 3 ./ -j检查线程的个数,被检查文件数多的时候会快些。

3eclipse编译后运行cppcheck

只需要eclipse添加命令即可实现。

在工程名右键->Properties->C/C++ Build->Settings->Build Steps->Post-build steps->Command 填入命令即可。

 

 

5.4 常见错误结果举例

1) 数组越界

 

 

2) 使用空指针

 

 

3) 内存泄漏

 

 

 

 

 

 

 

附录

常用快捷键

显示快捷键帮助:Ctrl+Shift+L

 

格式化(自动对齐):Ctrl+Shift+F

跳到指定行Ctrl+l
代码补全:Alt+/
注释/取消注释:Ctrl+/
显示搜索对话框:Ctrl+H
快速OutlineCtrl+O
删除行:Ctrl+D
上下移动选中的行:Alt+Up/Down
行末/行首:End/Home
前一个/后一个单词:Ctrl+Right/Left
撤销Ctrl+Z
保存:Ctrl+S
保存所有:Ctrl+Shift+S
变为大/小写:Ctrl+Shift+X/Y
最大化当前视图或编辑器:Ctrl+M

刷新工程:F5

自定义快捷键

方法:window->preferences->General->Keys

在这里可以查找所有功能的快捷键,需要修改或新增时,点击需要修改或新增的命令,在binding里设置快捷键。

 

如:设置编译(Build All)的快捷键为Ctrl+B,下图所示:

 

C/C++下eclipse的配置