目录

目录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. log4j+logback+slf4j+commons-logging的关系与调试

    背景     由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构 ...

  2. ubuntu 命令学习大全

    http://wiki.ubuntu.org.cn/UbuntuSkills#.E6.98.BE.E7.A4.BA.E5.BD.93.E5.89.8D.E7.A1.AC.E4.BB.B6.E4.BF. ...

  3. JS 中的 Window 对象

    窗口对象的属性和方法: 在js最外层写的function可以还可以理解为window对象的一个方法.定义的变量也可以称之为window对象的一个属性.例如:window.alert("--- ...

  4. Rspec中describe和context不同

    转自  http://lmws.net/describe-vs-context-in-rspec 学习rspec,不太理解describe和context.google了一下,找到这篇文章,感觉说的有 ...

  5. [Java] 读写字符串数据

    package test.stream; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  6. rsyncd.conf 文件

    uid = nobodygid = nobodymax connections = 10timeout = 60use chroot = noread only = falsepid file=/va ...

  7. aria-expanded,aria-hidden到底做什么用?

    aria-expanded表示展开状态.默认为undefined, 表示当前展开状态未知.其它可选值:true表示元素是展开的:false表示元素不是展开的. aria-hidden字符串.可选值为t ...

  8. java 反射技术

    什么是反射?反射就是将字节码中的各种成分映射到相应的java类中来,java反射技术自JDK1.1以来就出现了,目前大多数流行的框架都采用了这种技术,可见其重要性,这篇文章将详细介绍我对java反射技 ...

  9. FreeMarker语法知识

    FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:<#-- ... -->格式部分,不会输出3 ...

  10. Storm实时计算框架的编程模式

    storm分布式流式计算框架. nimbus:主进程服务(职责就是任务的分配的,程序的分发) supervisor:工作进程服务(职责就是启动线程池,接受任务,运行任务,报告任务的运行状态) 注意容错 ...