使用slickedit編寫wince與linux跨平臺c/s程序的心得

    前段時間一直在做藍牙的連接的試驗,主要目標是讓arm開發版上的linux能夠和我的手機上的wince之間建立藍牙的連接進行通信.經過一段時間之後 這部分的任務終於搞定了,剩下的任務就是集中精力開發基於藍牙的遠程控制程序,讓手機能夠無線控制其他設備.目前在x86上的linux做了demo程 序,並且將其中的server端移植到了arm開發版上.
    在這段時間的編碼過程中,主要的收穫是c語言的編碼以及 slickedit下利用開發環境下的一些工具加快開發的效率.
因爲以前一直是用c++,今年纔開始轉向c,很多c的思維都已經模糊了,甚至語法也經常和c++混爲一談,通過這次的項目我又重新熟悉c的編碼思維.
    另外一個收穫就是如何利用開發環境有效的組織管理項目.以前在寫程序的時候很少注意工作空間,項目以及編譯設定(就是選debug還是release,我 不知道這個叫什麼哈).但是這次這個項目有所不同,雖然項目不是很大,但是涉及到的內容卻不少,有linux下的部分也有win下的部分,單在linux 下就很麻煩了--要同時寫server和client兩個程序,編譯,並且調試.而這兩個程序開始是在x86,後來又要轉到arm上運行.之前在 emacs下寫點小程序的我一下子不知從何入手,感覺是很簡單,但是沒有有效的工具來管理的話,卻有覺得非常麻煩.
    後來我開始使用SlickEdit.這是個非常不錯的編譯環境,不論是編輯,編譯還是調試都得心應手,同時我也注意到了以前在vc下就有的工作空間以及工 作區下包含項目的用意.如果是寫一個單獨的程序,只生成一個可執行文件的話,似乎不用注意這些,但是c/s程序要生成2個應用程序,而且要十分方便能保持 同步,應該怎麼辦呢?解決的辦法就是設定一個工作區並在下邊創建2個項目,一個爲server,一個爲client,需要調試的時候生成整個工作區就可以 了(現在vs.net下邊好像叫解決方案,應該是一個意思).
    用這種方法來寫程序的時候我遇到了一個小問題.我的目錄結構是server.c和client.c在一個目錄下,而大部分共同的代碼在./lib子文件夾 下,然後在slickedit中分別創建2個項目,包含相應的文件,然後編譯.編譯的時候會將編譯生成的文件放在./debug或者./release文 件夾下(看你怎麼選),但是由於我兩個項目在一個工作區內只會有一個./debug文件夾,編譯兩個項目的時候就會產生衝突,導致一些同步的問題.問題雖 然簡單,但是解決畢竟要花時間.開始的時候我在環境的設置選項裏找解決辦法,怎麼也沒有找到控制輸出位置的選項,後來想到自己改makefile.但是工 程文件一改變,重新生成makefile又會出現問題.最後我終於注意到了我長期忽視的編譯方式選擇(就是選debug還是release那個)如果是選 debug就會把編譯結果放在./debug文件夾,那麼我重新建立一個編譯方式debugserver,就可以存放server的編譯結果,在創建一個 debugclient同理.這些問題就解決了,
    之後的編寫工作一直很順利,一直到今天需要把server端的程序移植到arm上.於是有建立一個編譯方式debugs_arm,設置了編譯器爲制定的arm-linux-gcc,指定了包含文件的位置,以及庫的包含位置,一切也都順利的搞定了.
    以上都是寫很淺顯的東東,只是一個總結,也希望能給一些人節省一點時間.希望大家多多交流,我的email:[email protected]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章