方案: 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
更精彩内容,请关注我的博客:https://wenfh2020.com