C/C++下Netbeans的配置
目录
目录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开发环境搭建
选择自己需要的版本(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的配置的更多相关文章
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- Centos下安装和配置SVN
1.安装SVN服务 #检查现有版本 rpm -qa subversion #如果存储旧版本,卸载旧版本SVN yum remove subversion #安装SVN yum install subv ...
- Win10下Android studio配置
Win10下Android studio配置 一.安装Android Studio的准备工作 1.下载好JDK,去官网上找一个下载下来 2.安装JDK.并配置环境变量.安装过程:本人将使用的是jdk- ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
- MAC下安装与配置MySQL
MAC下安装与配置MySQL MAC下安装与配置MySQL 一 下载MySQL 访问MySQL的官网http://www.mysql.com/downloads/ 然后在页面中会看到“MySQL ...
- 烂泥:Windows下安装与配置Nginx web服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关ng ...
- CentOS下OpenVPN客户端配置
CentOS下OpenVPN客户端配置 http://liumissyou.blog.51cto.com/4828343/1762683 1,安装 yum install openvpn -y mkd ...
- Apache下开启SSI配置使html支持include包含
写页面的同学通常会遇到这样的烦恼,就是页面上的 html 标签越来越多的时候,寻找指定的部分就会很困难,那么能不能像 javascript 一样写在不同的文件中引入呢?答案是有的,apache 能做到 ...
- Linux下Redis服务器安装配置
说明:操作系统:CentOS1.安装编译工具yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...
随机推荐
- java网络编程之TCP实例
Dgram类 package Socket; import java.net.DatagramPacket; import java.net.InetAddress; public class Dgr ...
- ubuntu14.04 wifi驱动安装
重装linux后,一直搜不到wlan0,无法启动wifi,经过重重努力,终于成功,在此简单记录一下. 1. 查看网卡类型: ~$ lspci -nn -d 14e4: :]: Broadcom Cor ...
- TRUNCATE与 DELETE
源地址:http://zhidao.baidu.com/link?url=9zB64BuXiAXNPF-zxvd6VLGTKb2FsUzQ-FsRAeQaYzycOGT5uGPXb-oB44TuYoP ...
- play framework (一)
Playframework--像玩一样编程, 传说中有了它,放个猴子在电脑前都会编程了! http://developer.51cto.com/art/201202/320053.htm http:/ ...
- [Flex] Accordion系列-动态添加或删除Accordion容器中项目
<?xml version="1.0" encoding="utf-8"?> <!--Flex中如何使用addChild()和removeCh ...
- 用jQuery之后,之前javascript的一些方法就不能用了吗
用jQuery之后,之前javascript的一些方法就不能用了吗? 比如$("#btn").onclick = function(){}这种用法?或者$("#btn&q ...
- springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)
首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...
- 使用jQuery解析xml时command节点解析失败
jQuery版本1.8.3 待解析的xml为: <message><user><command>Login</command></message& ...
- (转)Combobox出现System.Data.DataRowView的原因,以及指定ValueMember的时机问题
原文地址 http://blog.csdn.net/lubiaopan/article/details/5915774 当使用Combobox控件时,出现SelectedValue的值为“System ...
- relatedTarget、fromElement、toElement之间的关系
在发生mouseover和mouseout事件时会把鼠标指针从一个元素的边界之内移到另一个元素边界之内.对 mouseover事件而言,事件的target是获得光标的元素,而relatedTarget ...