转: NetBean 远程开发的好文2 --> 工欲善其事,必先利其器系列--Netbeans之远程开发

转自:  http://www.cnblogs.com/zuoca/archive/2012/07/09/Remote_Development_With_Netbeans_origin.html

实践难度:★★☆☆☆

  实用性  :★★★★☆

  你还在采用纯手工开发吗?

  你还在采用本地开发,ftp到远程主机进行编译的繁琐方式吗?

  你还在为不断的切换编辑窗口,ftp窗口,ssh窗口而感到郁闷吗?

  你还在为不能够熟练使用linux下那命令庞杂的vi,gdb而苦恼吗?

  你还在为不能使用现代化的IDE而担忧吗?

  ……

   作为与你一样的linux C/C++程序员,我也对这一切感到郁闷。一直很羡慕Java程序员拥有如Eclipse,Netbeans这般人性化的IDE(内嵌的代码模版、代码格 式化、自动完成、代码重构等功能对于程序员来说都是有效提高开发效率的必备利器)。虽说Visual Studio,Borland Builder,Code::Block对于C/C++语言开发也是非常的方便,linux端也不乏优秀的IDE,但当碰到我们”本地开发,远程编译,远 程运行”的开发模式时,一切都变得不再那么友好。IDE自身的特性要么无法完整发挥,要么需要通过繁琐的个性化配置,使用大量的外挂插件才能实现类似的效 果。我们不能像那些大牛们,用的不爽就自己写一个出来用。一则大多数人都没有这个功力,二则业界一定有针对此类情况的解决方案了,我们只需找到一个适合自 己的就好。终于,在不断地寻找中,我找到了这么一款能够帮助我们”解放双手,解放生产力”的IDE—NetBeans7.1。网上关于远程开发的资料为数 不多,而且大多数即使你照着操作,到最后也不一定成功。本文我将会通过一个完整的示例向各位介绍NetBeans那强大,实用的远程开发功能。


测试环境


本地主机


远程主机:


操作系统


XP Professional


Linux 2.6.9-42.EL


其他软件


Java-JDK 1.7.0_05

NetBeans 7.1


GCC 3.4.6

GDB 7.4

(远程调试必须使用gdb6.8+)

1       现状分析

  在开始之前,让我们先看看现在的linux C/C++程序员的工作方式吧。

   由于使用linux端的图形化开发环境需要消耗很大的资源,且大多数情况下我们不允许使用这样的开发方式。使用vi开发又要配置各种插件,熟悉各种命 令。我们是程序员,不是内存条,我们厌恶记忆那些诡异的命令。于是大多数程序员采用的开发方式都是:在本地编辑代码,然后ftp到远程主机,在远程主机进 行编译,调试。发生错误时,则切换回本地环境修改代码,在ftp,编译,调试。如果问题依然存在,重复上述操作。若程序逻辑复杂,这样的过程可以持续到要 么程序员奔溃,要么程序奔溃。

  目前大多数程序员使用的基本是UltraEdit和SourceInsight这两款工具,下图从几个维度进行了比对。


UltraEdit


SourceInsight


格式化




代码浏览



完美支持


重构


不支持


支持


自动补全


简单支持


完美支持


代码模版




版本控制


需通过自定义外部工具实现


基本支持


远程开发


不支持


不支持


远程编译


不支持


不支持


远程调试


不支持


不支持

  从上图可以看出,这两款编辑器的功能相对一款IDE来说还显得有些稚嫩。(当然他们本身也不是打着IDE的旗号在出售,进行这样的评价多少有些不公)

2       方案比对

  在最终确定推荐NetBeans之前,我也试用了多款声称支持远程开发的IDE。下表对这些IDE进行了对比,以证明我向各位推荐的NetBeans的确是目前最佳的选择。


远程开发方案对比表


Eclipse C/C++


Netbeans C/C++


MagicUnix


格式化


支持


支持


支持


代码浏览


支持


完美支持


支持


重构


支持


完美支持


不支持


自动补全


支持


完美支持


支持


代码模版


支持


支持


不支持


版本控制


支持—(测试存在问题)


完美支持


支持


依赖插件


RDT,PTP




依赖服务


Perl,Java,SSH,RDT-Server


SSH


SSH


远程开发


支持


支持


支持


远程编译


支持


支持


支持


远程调试


支持--(测试存在问题)


完美支持


完美支持


离线支持


不支持


支持


不支持


综合评价


基于Eclipse框架的远程开发方案由IBM和HP共同参与,但是开发出的产品实是不甚好用。依赖太多,现有bug也比较多。


基于Netbeans框架的远程方案应该是目前最为理想的方案了,虽然也存在不少bug,但只要合理使用,还是能发挥其特性的。


由国人开发的收费软件,最近已停止更新,界面类似VC6,远程功能比eclipse好用,唯一不足的就是不支持离线开发。

  接下来我就详细介绍下Netbeans的远程开发功能吧。

3       远程开发

  (注:关于NetBeans本身就不介绍了,感兴趣的话可以看看官网的介绍。基本操作由于篇幅限制也不做介绍了,多使用几次自然就熟悉了)

  安装NetBeans

  1. 进入http://netbeans.org/ NetBeans官网下载NetBeans 7.1.2
  2. 安装(具体过程相信不用我多说了吧)

  开启下载功能

  1. 桌面右击NetBeans快捷方式,选择属性—>快捷方式
  2. 在目标一栏 后面添加

-J-Dcnd.remote.download.project.action=true

  3.  确定

  下面我们就正式开始我们的远程开发之旅吧。

  1. 打开NetBeans
  2. 创建项目文件

  工具栏—>文件—>新建项目

  (注:选择基于现有源代码和基于二进制的项目,后期添加的文件将存在上传bug。)

  填写项目名称等基本信息,生成主机选择localhost

  点击完成,项目创建成功

  1. 导入现有源代码或添加源代码

  项目名称右击—>从文件夹添加现有项

  (注:新建文件夹无法自动加入项目,需要关闭项目,重新打开。建议采用预先创建好源码目录结构然后一次导入的方式,若中途需要添加新的文件夹,可以在外部添加好,然后右击项目名称—>删除,重新添加一次即可。)

  1. 添加远程主机

  既然是远程开发,那么必须配置好远程开发的环境,这样IDE才能够提供代码完成,代码分析等功能。

  项目名称右击—>设置远程生成主机—>管理主机

  点击管理组件后,将出现生成主机管理器界面

  点击添加按钮,出现新建远程生成主机界面,填入主机名(IP)。

  点击下一步,更改登录用户名,验证方式选择口令方式(若远程端为SSH密钥方式,则选择SSH密钥文件。

  点击下一步—>输入用户密码

  点击确定,NetBeans开始自动搜索远程主机开发环境

  (注:若自动搜索到的路径与实际路径不符,或者想自定义执行路径,可在远程主机创建完毕之后。选择工具栏—>工具—>选项—>C/C++à生成工具,开发主机选择欲配置的主机,编辑工具执行路径,编辑完毕,确定即可)

  点击下一步,选择项目文件访问方式为“系统级别文件共享(NFS、Samba等)”

  (注:访问方式必须选系统级别文件共享)

  点击完成。

  点击路径映射器,建立本地源码与远程主机源码之间的映射关系

  本地路径填入本地源代码所处路径,远程路径填入想存放源代码的目录。

  至此远程主机添加完毕。

  1. 添加头文件路径

    为了能够正常解析源代码之间的包含关系,提供代码的自动补全功能,配置额外的头文件路径是必不可少的步骤。

    工具—>选项—>C/C++—>代码帮助

    点击添加按钮将常用头文件路径加入,若存在系统未解析的宏也可通过加入宏定义解决。

    (注:若自定义头文件路径过多时,添加显得过于繁琐,可通过更改配置文件实现。由于操作冗长,故此处不赘述)

    路径添加完毕后,点击确定即可。

  1. 项目配置结束。

    项目配置结束后,我们就可以进行正常的源码编辑,创建工作了。

    (注:项目源代码默认编码为UTF-8,若导入的源码编码格式不符,在试图打开源代码是会弹出“无法使用编码UTF-8安全地打开该文件..”的对话框。

    此时需要修改项目默认编码。

    具体步骤:项目名称右击—>属性—>常规

4       远程编译

  在源码编辑结束后,我们需要进行源代码的编译工作了。

  项目源代码目录右击-->上传至….

  (注:上传过程中可能提示源代码映射路径不存在,按照提示进行配置即可)

  代码上传完毕之后,选中makefile文件右击—>make目标即可执行编译工作。

  若编译失败,需安照提示错误进行源代码修改,然后点击修改源代码选择上传,重新运行编译即可。

5       远程调试

  在代码成功编译后,若执行结果与预期不符,我们就需要进入代码调试阶段了,有人说,好的代码不是写出来的,是调出来的,可见调试工作也是相当的重要。

  对于普通应用程序的调试,由于其比较简单只需通过菜单栏的调试按钮即可进行,此处不进行描述。此处仅对本人常用的动态库调试功能进行简述。

  既然是动态库调试,那么就要选择运行的主程序了,通过调试—>连接调试器,连接到主程序进程。

  点击连接调试器,出现连接界面,选择要连接的进程,选择项目为当前项目。

  点击确定,即可连接到远程进程。

  在预调试的代码上开启断点功能。

  触发主程序

  程序已经入调试阶段,可通过添加自定义变量,观察当前变量的情况。

  调试结束后,选择调试—>完成调试器会话终止调试即可。

6       总结

   以上介绍了远程开发,远程编译,远程调试三大主要功能了。不过为了更好的使用NetBeans,我们还可以通过自定义快捷键,自定义代码模版,添加版本 控制等操作进一步提升我们的效率(由于篇幅限制就不一一介绍了)。虽然NetBeans已经能够提供远程开发所需的大部分功能了,可依然存在不少问题,如 编译输出窗口不支持中文,不支持新增文件夹立即生效等等问题,希望在新版本的NetBeans中能够有所改观。

参考资料

http://en.wikipedia.org/wiki/NetBeans

http://www.eclipse.org/ptp/

时间: 2024-08-07 08:57:51

转: NetBean 远程开发的好文2 --> 工欲善其事,必先利其器系列--Netbeans之远程开发的相关文章

转: 工欲善其事,必先利其器系列--Netbeans之远程开发

转自: http://www.cnblogs.com/zuoca/archive/2012/07/09/Remote_Development_With_Netbeans_origin.html 工欲善其事,必先利其器系列--Netbeans之远程开发 实践难度:★★☆☆☆ 实用性  :★★★★☆ 你还在采用纯手工开发吗? 你还在采用本地开发,ftp到远程主机进行编译的繁琐方式吗? 你还在为不断的切换编辑窗口,ftp窗口,ssh窗口而感到郁闷吗? 你还在为不能够熟练使用linux下那命令庞杂的vi

VC项目开发之单文档多视图实现-非分割窗口[转]

k_eckel:http://www.mscenter.edu.cn/blog/k_eckel 多视图是VC开发中经常要用到的技术之一,一般地实现单文档多视图有两种方式 1)通过视图分割的技术(使用CSplitterWnd实现),将窗口分割为多个部分,每个部分显示各自显示不同的视图,这种技术实现起来比较简单,并且相关的资料也很多. 2)通过一个文档关联多个视图,窗口显示整个视图. 第二种实现较第一种复杂,这里给出详细的实现方法. Step 1:使用VC 6.0新建一个Project,命名为:Mu

成都接单-网站/APP开发/价格实在/文档完备

接单-网站/APP开发/价格实在/文档完备优势:8年PHP 9年JAVA开发经验采用THINKPHP 和JFINAL ,SBadmin 2框架进行开发完善的开发文档免费一年BUG维护 可签协议,可先预付20%,也可分段付款, 亲 请带好需求文档! QQ 184377367 报价原则1:功能列表2:兼容性3:安全要求等级4:是否需要完善的开发文档5:后台UI是否有要求

iOS 开发 之 - UIScrollView文档

额.这篇文档主银:http://blog.sina.com.cn/u/2141630575  #import <Foundation/Foundation.h> #import <CoreGraphics/CoreGraphics.h> #import <UIKit/UIView.h> #import <UIKit/UIGeometry.h> #import <UIKit/UIKitDefines.h> typedef enum { UIScro

在某公司时的java开发环境配置文档

1 开发环境配置 1.1.  MyEclipse 配置 1.MyEclipse下载地址:\\server\共享文件\backup\MyEclipse9.0 2.修改工作空间编码为UTF-8,如下图 3.注释配置 类注释配置:如下图 方法注释:如下图 2. 代码书写规范 2.1. Action 所有action类必须继承com.xx.util.BaseAction类,并且加上@Controller注解:对于service层注入,同意在set方法上写@Resource注解.例如 @Controlle

软件开发十三种文档格式

在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性.精确性.清晰性.完整性.灵活性.可追溯性. ◇ 可行性分析报告:说明该软件开发项目的实现在技术上.经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由. ◇ 项目开发计划:为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员.开发的进度.开发经费的预算.所需的硬件及软件资源等. ◇ 软件需求说明书(软件规格说明书):对所开发软件的功能.性能.用户界面及运行环

《Java开发学习大纲文档》V6.0

<Java开发大纲学习文档第六版>简介:          该文档是根据企业高级Java从事IT行业多年开发经验上所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面覆盖非常广泛全面,从编程环境安装开始切入,第一阶段从Java基础(Java核心基础+面向对象+多线程+常用类+IO+GUI+网络编程+常用实例)入门,第二阶段深入了解JavaWeb(Oracle.MySQL.MongoDB.MySQL数据库的优化.HTML5.

软件开发的常见文档

软件开发的常见文档 01立项调查报告02立项建议书 03立项评审报告 04项目设计开发任务书 05项目计划 06质量保证计划 07配置管理计划 08需求分析说明书 09概要设计说明书 10详细设计说明书 11数据库设计说明书 12数据库表详细设计 13单元测试计划 14测试脚本 15单元测试报告 16系统测试计划 17验收申请书 18验收评审报告 19客户验收报告 21审核反馈表 22软件评审报告 23变更需求报告 24设计变更报告 26项目管理报告 27项目总结报告 原文地址:https://

【spark系列3】spark开发简单指南

分布式数据集创建之textFile 文本文件的RDDs能够通过SparkContext的textFile方法创建,该方法接受文件的URI地址(或者机器上的文件本地路径,或者一个hdfs://, sdn://,kfs://,其他URI).这里是一个调用样例:scala> val distFile = sc.textFile("data.txt")distFile: spark.RDD[String] = [email protected] 分布式数据集操作之转换和动作 分布式数据集