轉: NetBean 遠程開發的好文2 --> 工欲善其事,必先利其器系列--Netbeans之遠程開發

轉自:  http://www.cnblogs.com/zuoca/archive/2012/07/09/Remote_Development_With_Netbeans_origin.htmlhtml

 

實踐難度:★★☆☆☆linux

  實用性  :★★★★☆程序員

 

  你還在採用純手工開發嗎?安全

  你還在採用本地開發,ftp到遠程主機進行編譯的繁瑣方式嗎?框架

  你還在爲不斷的切換編輯窗口,ftp窗口,ssh窗口而感到鬱悶嗎?eclipse

  你還在爲不可以熟練使用linux下那命令龐雜的vi,gdb而苦惱嗎?ssh

  你還在爲不能使用現代化的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/

相關文章
相關標籤/搜索