目录

目录1

1 netbeans开发环境搭建2

2 netbeans工程管理2

2.1 采用IDE自动生成Makefile2

3 netbeans工程配置2

3.1 编译工具链3

3.1.1 添加配置项 3

3.1.2 设置交叉编译工具 3

3.2 头文件、链接库、预编译的宏4

3.2.1 头文件路径 4

3.2.2 链接库 5

3.2.3 预编译宏 6

3.2.4 指定输出文件的路径及名字 6

3.3 其他实用设置6

3.3.1 选择编程语言的标准 6

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

3.3.3 修改字体大小 7

3.3.4 记录编译号 7

3.3.5 自动格式化对齐 8

4 编译生成链接库9

5 远程调试10

5.1 gdbserver调试工具安装 10

5.2  Netbeans远程调试设置 11

附录11

常用快捷键11

 

1 netbeans开发环境搭建

官网:https://netbeans.org/

选择自己需要的版本(c/c++、linux)下载好之后直接运行*.sh文件,然后按图形界面提示点下一步即可。

2 netbeans工程管理

2.1 采用IDE自动生成Makefile

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

(1)新建工程

新建C言语工程:File->New Project->C/C++ -> C/C++ Applicatin->Next

输入工程名点击完成即可。

3 netbeans工程配置

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

3.1 编译工具链

3.1.1 添加配置项

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

Properties-> Build->Manage Configuurations->New 输入名字点OK即可。

3.1.2 设置交叉编译工具

3.2 头文件、链接库、预编译的宏

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

3.2.1 头文件路径

3.2.2 链接库

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

3.2.3 预编译宏

Properties-> Build-> C Compiler->Preprocessor Definitions

3.2.4 指定输出文件的路径及名字

Properties-> Build-> Linker->Output

3.3 其他实用设置

3.3.1 选择编程语言的标准

C++设置方法: Properties-> Build-> C++ Compiler->C++ standard 选择C++ 11点击OK。

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

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

配置方法:(注意:命令前要加两个tab,使关键字变色才能运行)

在Files视图直接打开Makefile文件。

在.build-pre:  后加入编译之前执行的命令。

在.build-post: 后加入编译之后执行的命令。

3.3.3 修改字体大小

方法:Tools –> options->Fonts & Colors

3.3.4 记录编译号

properties-> Build->C C->Cross GCC Linker->Miscellaneous->Link flags

在Additional options填写内容:

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

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

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

@if test "${CONF}" = "DebugARM"; then \

rm ${CND_BUILDDIR}/${CONF}/${CND_PLATFORM_${CONF}}/rtklite.o; \

if ! test -f $(BUILD_NUMBER_FILE); then echo 0 > $(BUILD_NUMBER_FILE); else \

echo $$(($$(cat $(BUILD_NUMBER_FILE)) + 1)) > $(BUILD_NUMBER_FILE); \

fi \

fi;\

if test "${CONF}" = "Debug"; then \

rm ${CND_BUILDDIR}/${CONF}/${CND_PLATFORM_${CONF}}/rtklite.o; \

if ! test -f $(BUILD_NUMBER_FILE); then echo 0 > $(BUILD_NUMBER_FILE); else \

echo $$(($$(cat $(BUILD_NUMBER_FILE)) + 1)) > $(BUILD_NUMBER_FILE); \

fi \

fi;\

在程序中调用变量:

extern int BUILD_VERSION;

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

3.3.5 自动格式化对齐

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

自定义规则:

Tools –> options –> Editor –> Formatting –> Manage –>New 新建配置项。

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

4 编译生成链接库

建议新建一个配置项单独用于编译链接库。

链接库里一定不能有main函数,所以有main函数的文件不能一起编译,只需将需要用到的源文件编译即可。

1、 排除不需要编译的文件

在Projects视图中 source Files里选中不需要编译的文件,鼠标右键点Properties->General->Exclued  From  Build 打上勾。

2、 设置编译

Properties->Build->Configuration Type 选择Dynamic Library(动态链接库),也可以选择Static Library(静态链接库)。选好后直接编译工程就可以了。

5 远程调试

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

5.1 gdbserver调试工具安装

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

制作目标板的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

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

5.2  Netbeans远程调试设置

在netbeans官网的Plugins里找到gdbservion进行插件下载。

1、Netbeans安装插件:

Tools->Plugins->Downloaded->Add Plugins(选择插件)->Install

2、运行远程调试

先在目标板上运行gdbserver

$./gdbserver 192.168.5.1:1234 demo 运行gdbserver,demo为调试的应用程序

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

Listening on port 1234

连接成功后:

[root@gware /root]#./gdbserver 192.168.5.1:1234 demo

Process demo created; pid = 1032

Listening on port 1234

Remote debugging from host 192.168.5.100

附录

常用快捷键

查看和自定义快捷键:Tools->Options->Keymap

格式化(自动对齐):Alt+Shift+F
注释/取消注释:Ctrl+/
显示搜索对话框:Ctrl+H
撤销:Ctrl+Z
保存:Ctrl+S
保存所有:Ctrl+Shift+S

跳到指定行:Ctrl + G

折叠所有代码块:Ctrl-Shift+数字键盘上的 -
展开所有代码块:Ctrl-Shift+数字键盘上的 +

C/C++下Netbeans的配置的更多相关文章

  1. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  2. Centos下安装和配置SVN

    1.安装SVN服务 #检查现有版本 rpm -qa subversion #如果存储旧版本,卸载旧版本SVN yum remove subversion #安装SVN yum install subv ...

  3. Win10下Android studio配置

    Win10下Android studio配置 一.安装Android Studio的准备工作 1.下载好JDK,去官网上找一个下载下来 2.安装JDK.并配置环境变量.安装过程:本人将使用的是jdk- ...

  4. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...

  5. MAC下安装与配置MySQL

    MAC下安装与配置MySQL   MAC下安装与配置MySQL 一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL ...

  6. 烂泥:Windows下安装与配置Nginx web服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关ng ...

  7. CentOS下OpenVPN客户端配置

    CentOS下OpenVPN客户端配置 http://liumissyou.blog.51cto.com/4828343/1762683 1,安装 yum install openvpn -y mkd ...

  8. Apache下开启SSI配置使html支持include包含

    写页面的同学通常会遇到这样的烦恼,就是页面上的 html 标签越来越多的时候,寻找指定的部分就会很困难,那么能不能像 javascript 一样写在不同的文件中引入呢?答案是有的,apache 能做到 ...

  9. Linux下Redis服务器安装配置

    说明:操作系统:CentOS1.安装编译工具yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...

随机推荐

  1. Altiium Designer 09 解决局域网冲突的办法(转载)

    Altiium Designer 09 解决局域网冲突的办法(转载) 一 通过防护墙禁止进程访问网络: 1.1打开DXP.EXE,然后在360的流量防护墙或WINDOWS防护墙禁止该进程访问网络.注意 ...

  2. tcpdump命令--实用篇

    //查看本机与mysql的操作命令 注意 -i any表示监听所有网络接口,我们也根据自身情况选择网络接口 #tcpdump -i any -w - dst port 3306 |strings // ...

  3. git 空提交和重置提交者(转载)

    From:http://www.xiukun.me/git%E4%BD%BF%E7%94%A8-allow-empty-%E8%BF%9B%E8%A1%8C%E7%A9%BA%E7%99%BD%E6% ...

  4. Windows 64位下安装Redis详细教程

    方法/步骤 在D盘新建文件夹[redis],右键解压Redis ZIP包,把所有文件解压到redis文件夹中.(其他盘符也可以滴^_^) 文件介绍: redis-benchmark.exe       ...

  5. Python中if __name__ == "__main__": 的作用

    在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在python编 ...

  6. vi命令的使用

    <转:http://linux.vbird.org/linux_basic/0310vi.php> 基本上 vi 共分为三种模式,分别是『一般模式』.『编辑模式』与『指令列命令模式』. 圖 ...

  7. python异常类型

    python2: BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- Stop ...

  8. SQL查詢數據字典

    SELECT d.name AS 表名 , f.value AS 表说明, 字段序号 = a.colorder , 字段名 = a.name , 标识 THEN '√' ELSE '' END , 主 ...

  9. MySQL数据库优化技术之SQL语句慢查询定位

    通过show status命令了解各种SQL的执行频率 MySQL客户端连接成功后,通过使用show [session|global] status 命令可以提供服务器状态信息: 其中的session ...

  10. HDU 1043 八数码 Eight A*算法

    Eight Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...