visualgdb windows linux 跨平臺編譯

wenfh2020發表於2015-08-26

    方案: visual gdb + vs2012 + visaul assist x 

    windows 轉 linux 平臺,習慣了 ide,vim + gdb + gcc 用起來非常不爽,用過跨平臺的 codeblocks,感覺 linux 要裝好 codeblocks 編譯環境,實在太難了。

     visualgdb (VG)無疑是一大利器。用熟悉的 vs 系列。建好工程,配置好 visualgdb project properties 對映,就能工作了。

     配置遇到最大的問題,不知道哪個才是 visualgdb 指定的當前目錄,相對路徑就不好設定。VG 配置好後,會在當前目錄生成 makfile 檔案,makfile  檔案所在的目錄就是當前目錄。當前目錄改變的檔案(可根據字尾名過濾)都會在編譯的時候 windows <---->linux 通過 ssh 同步,所以你的原始碼 include 和 src 資料夾最好在 makefile 所在的目錄。

    注意:VG 會自動生成 makefile,但是很多同學比較喜歡自己寫 makefile 的,所以 Files to transfer 就要設定要同步的檔案型別。避免VG自動生成的 makefile 檔案覆蓋遠端的。

    

  

    跨平臺新建檔案問題:

    還有一點要注意的,在 windows 平臺新建立的原始碼檔案,最好是 utf8 編碼的~~ 這是個坑。

    visual studio 新建C++檔案為 UTF8 檔案解決方案

    utf8 編碼問題也可以參考我的帖子:跨平臺編碼問題 


    VA 高亮問題:

    VA 能使程式碼高亮,但如果單獨的模組,VA 沒那麼智慧的,還需要在 Makefile settings 配置依賴原始碼的路徑:



    VG 版本衝突問題:

    VisualGDB 5.0 以及其它高版本 會與 visual assist x 衝突,

    這個版本不會衝突:VisualGDB-4.2r4.zip (CSDN 下載資源)

    官網下的 VisualGDB-5.1r6-trial.msi 也有破解版,安裝後程式碼可以選擇 vax 或者 vgdb 渲染,但還是時好時壞。

    通過谷歌,找到一個帖子是通過修改 VG 的登錄檔資訊避免衝突的,但是我自己找不到這個登錄檔項。

    You can also disable the Clang IntelliSense globally by setting HKCU\Software\Sysprogs\VisualGDB\Settings\CppLanguageServiceSupport to 0.

    有網友(進擊的二把刀)反饋下面解決衝突的辦法,小夥伴們可以試一下,本人老版本能用所以暫時不折騰了。謝謝熱心的網友。

    可以在工具,選項,VisualGDB選項卡中,設定Enable Clang IntelliSense by default 為false。
另外首次開啟工程時,如果沒有VA提醒,可以開啟VisualGDB的工程設定,然後點選目錄的測試“File synchronizetion-----test”就好了。4.2沒有cmake功能,實在不方便,我現在用的是5.0一切正常(VA是當前最新的版本)

    VisualGDB 5.02 bata4 的已經不用每次都點“File synchronizetion-----test”了,有一次設定完了後,下次開啟都正常。另外還有個地方增加了開關:VisualGDB Project Properties -> Project settings -> IntelliSense Setting。把這裡的設定都關掉就完美相容VA了。


   參考過的帖子(轉載)

   使用VS+VisualGDB編譯除錯Linux程式

   http://www.linuxidc.com/Linux/2015-02/112844.htm

相關文章