visualgdb windows linux C++ 跨平台编译

方案: 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 文件覆盖远端的。

visualgdb windows linux C++ 跨平台编译_第1张图片
VG 配置

跨平台新建文件问题:

还有一点要注意的,在 windows 平台新创建的源码文件,最好是 utf8 编码的~~ 这是个坑。

visual studio 新建C++文件为 UTF8 文件解决方案

utf8 编码问题也可以参考我的帖子:跨平台编码问题


VA 高亮问题:

VA 能使代码高亮,但如果单独的模块,VA 没那么智能的,还需要在 Makefile settings 配置依赖源码的路径:

visualgdb windows linux C++ 跨平台编译_第2张图片
工程依赖文件

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

你可能感兴趣的:(visualgdb windows linux C++ 跨平台编译)