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 ...
随机推荐
- 30天轻松学习javaweb_https协议的密码学
https通过非对称加密实现数据安全1.CA机构提供数字证书,其中数字证书包含公钥.2.浏览器自带功能验证数字证书是否是CA机构颁发的.3.根据数字证书包含的公钥对表单数据进行加密.4.公钥提供方再根 ...
- IronPython 设置包路径
C#中添加对python文件或者对python包的引用时出现"no module .."的问题时的解决办法. 对hello.py 做一些简单的修改 添加 import syssys ...
- 第10章 Posix 信号量
10.1 概述 10.1.1 信号量类型 Posix有名信号量:使用Posix IPC名字,可用于进程或线程间同步: Posix基于内存的信号量:也叫做无名信号量,存放在共享内存中,可用于进程或线程间 ...
- java小程序 实例 二分法查找
使用二分法在一个数组中查找一个数: package com.test; public class BinaryFind { private final static int size = 500000 ...
- Maven项目中,编译proto文件成Java类
新建Maven项目 新建一个 Maven 项目: pom定义了最小的maven2元素,即:groupId,artifactId,version. groupId:项目或者组织的唯一标志,并且配置时生成 ...
- C Primer Plus(第五版)9
第 9 章 函数 在本章中你将学习下列内容: · 关键字: return (返回) · 运算符 * (一元) & (一元) · 函数及其定义方式. · 参数和返回值的使用方法. · 使用指针变 ...
- SQL(Oracle)
http://blog.csdn.net/winter13292/article/details/7011377 SQL 对大小写不敏感! 在 SQL 中增加 HAVING 子句原因是,WHERE ...
- String相关操作
1.求字符串中连续出现最多的字串 pair<string, int> substring(const string& str) { ; string substr; vector& ...
- Regional Changchun Online--Alisha’s Party
Alisha's Party Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- [VB.NET]Dictionary类
字典类是一个很重要的类,尤其是对于数据的简单存储,查询,和处理. 废话不多说,简单记录下我探索的结果. 1. Dictionary内部索引是0基的.也就是说第一个元素的序号是0. 2. Public ...