utf8 編碼問題也可以參考我的帖子:跨平臺編碼問題
visualgdb windows linux 跨平臺編譯
方案: 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 檔案解決方案
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
相關文章
- 跨平臺編譯編譯
- Go跨平臺交叉編譯Go編譯
- C++跨平臺庫boost和Poco的編譯C++編譯
- Electron構建跨平臺應用Mac/Windows/LinuxMacWindowsLinux
- Windows平臺使用CMake+MinGW64編譯OpenCVWindows編譯OpenCV
- jsoncpp linux平臺編譯和arm移植JSONLinux編譯
- [Flutter翻譯]Flutter時代的多平臺VS跨平臺Flutter
- 跨平臺還原、恢復資料庫(Windows->Linux)資料庫WindowsLinux
- 編譯arm平臺的ethtool編譯
- Rust 跨平臺與條件編譯總結 2019.1.3Rust編譯
- Mac平臺反編譯Unity編譯的安卓apkMac編譯Unity安卓APK
- linux與windows交叉編譯LinuxWindows編譯
- .NET探索平臺條件編譯編譯
- Windows平臺的rop exp編寫Windows
- [翻譯] .NET 官宣跨平臺 UI 框架 MAUIUI框架
- Sublime Text for Mac/Windows:一款強大的跨平臺程式碼編輯器MacWindows
- 富文字及編輯器的跨平臺方案
- OcenAudio for Mac跨平臺音訊編輯神器Mac音訊
- 編寫跨平臺Java程式注意事項(轉)Java
- ORACLE11G從WINDOWS到LINUX跨平臺遷移並升級OracleWindowsLinux
- rust跨平臺Rust
- Windows Embedded CE 6.0開發初體驗(七)編譯和除錯平臺Windows編譯除錯
- Sublime Text——高效的跨平臺程式碼編輯器
- Golang在各平臺下如何交叉編譯Golang編譯
- ffmpeg iOS平臺編譯 指令碼註釋iOS編譯指令碼
- 用 NDK 編譯 ffmpeg 到 Android 平臺編譯Android
- 超級簡單的跨平臺高效能音視訊播放框架QtAv編譯指南框架QT編譯
- 11_QT跨平臺執行之把QT程式交叉編譯到ARM開發板QT編譯
- 從linux平臺移值資料庫到windows平臺Linux資料庫Windows
- whistle – 跨平臺(Win/Mac/Linux)的 FiddlerMacLinux
- C#winform軟體實現一次編譯,跨平臺windows和linux相容執行,相容Visual Studio原生介面Form表單開發C#ORM編譯WindowsLinux
- .NET Core 跨平臺
- WPF跨平臺方案?
- rman 跨平臺支援
- VNC 跨平臺copyVNC
- JVM跨平臺原理JVM
- Java跨平臺原理Java
- [譯] 使用 Flutter 實現跨平臺移動端開發Flutter