把其他C/C++编译器集成到VC2005中的方法

所属分类: 软件教程 / 编程开发 阅读数: 2012
收藏 0 赞 0 分享
IIC这样的编译器安装之后会自动集成进来,要集成其他编译器那还得自己动手。另外,在VC2005IDE中是不能编译单个.cpp文件的,除非把它放在工程中。但是,我们可以通过调用外部工具实现编译单文件。下面介绍一种简单的方法。
cl.exe添加到外部工具的方法这里就不介绍了,大家参照下面添加gcc的方法,再查阅cl.exe的参数说明,就能试着添加进来。下面以调用g++为例说明如何编译.cpp文件。如果要编译单个.c文件,使用gcc即可,方法同理。

一、获取Windows版的GNU C++Compiler(g++)
你可以通过安装Cygwin或者MinGW来获得g++ for Windows。以MinGW为例,我们可以下载Dev C++。安装Dev C++的同时就安装了MinGW,其中包含了g++
假设Dev C++安装在D:\Dev-Cpp目录下。

二、编译器参数的设定
下面我们在VC2005的菜单点击“工具(Tools)->外部工具(External Tools)->添加(Add)”。分别填入:
标题(Title):GNU C++Compiler
命令(Command):D:\Dev-Cpp\bin\g++.exe
参数(Arguments):-Wall-o$(ItemFileName)$(ItemFileName)$(ItemExt)-time
初始目录(Initial directory):$(ItemDir)
再钩选下面的"使用输出窗口(Use Output window)".
说明:如果你已经把D:\Dev-Cpp\bin\目录添加到系统环境变量中,那么Command指定为g++.exe即可。Cygwin同理。这些参数只是一个参考。你可以查阅VC编译器的宏设置你需要的参数。
干脆顺带补充一下Digital Mars C++编译器的参考参数设置:
标题(Title):Digital Mars
命令(Command):C:\dm\bin\dmc.exe
参数(Arguments):$(ItemFileName)$(ItemFileName)$(ItemExt)
初始目录(Initial directory):$(ItemDir)

三、编译
下面切换到main函数所在文件,点击工具(Tools)菜单下的“GNU C++Compiler”开始编译。
注意:g++此时编译的是纯C++程序,对于包含int_tmain(int argc,_TCHAR*argv[])这类VC特有的C++程序自然是无法通过编译的。
如果编译没有出错,对于早期版本的g++而言,Output window是没有任何输出的。而对于较新版本的g++,将输出类似以下的信息:
#cc1plus 0.67 0.22
#as 0.05 0.01
#collect2 0.36 0.19
这是-time报告的编译过程中每个子过程所占用的CPU时间。当然,你还可以更改编译参数,使输出窗口输出其他编译信息。

四、运行参数设定
我们还可以通过添加外部工具来实现运行g++生成的程序的功能。步骤如下:
VC2005的菜单点击“工具(Tools)->外部工具(External Tools)->添加(Add)”。分别填入:
标题(Title):Run as C++Application
命令(Command):%systemroot%\system32\cmd.exe
参数(Arguments):/c$(ItemFileName).exe
初始目录(Initial directory):$(ItemDir)
不要钩选下面的“使用输出窗口”和“退出时关闭”。
注意:cpp文件必须放在工程中,g++生成的程序才能被运行!另外,用MinGWg++编译的程序不能在没有安装MinGWWindows系统上运行。因为它依赖于MinGW库。即便是通过VC2005编译出的不带预编译头的Win32控制台应用程序,也就是用空环境,这样编译出来的可执行文件也不是放在哪台机子都能跑的。

五、设置快捷键
点击菜单中的"工具->自定义"
点击右下角的"键盘"
点击"按快捷键"下面的文本框,
按下Shift+Ctrl+F7,如果这个快捷键已经分配给了其他的命令,更换一个即可。
"显示命令包含"中填入“工具.外部命令6",再点击“分配”按钮,
"确定",再点“关闭”
这样就给GNU C++Compiler分配了快捷键Shift+Ctrl+F7
注意:刚才是在GNU C++Compiler位于外部工具菜单的第6项的情况下,在"显示命令包含"中填入“工具.外部命令6"!同理,我们可以给Run as C++ Application分配一个快捷键。

六、分配工具条
点击菜单中的"工具->自定义",点击"工具栏"选项卡,
点击“新建”,
在工具栏名称中填入“g++”,
切换到"命令"选项卡,
点击"类别"中的"工具"
在右边的命令把“外部命令6”拖动到刚才建立的g++工具条上,
先不要关闭"自定义"对话框,
下面单击g++工具条上的GNU C++ Compiler按钮
再点击自定义对话框中的“修改选中的内容”按钮,设置工具条中按钮的名称和文字等属性。
Run as C++Application
也可以通过这种方式放到g++工具条中。

七、结语
通过这样的集成,为初学者学习纯C++提供了便利。我认为,对于标准C++的初学者而言,不能认为用VC编译通过就万事大吉了。用g++编译检查一次是必要的。现在我们只需要按一下快捷键,就知道了这份代码是否能通过其它编译器,例如g++的编译,不用再切换到命令行来重新编译程序。
但是若想把g++的输出结果输出到错误列表,或者是用VCIDE来调试g++生成的程序,应该是绝无可能了。其实也没什么必要。感觉g++的错误提示比VC要智能得多,这有利于我们快速地找到问题的根源。
如果感兴趣,你还可以把make.exe等添加到VC2005的外部工具中,以实现编译整个工程的目标。当然,在工程中少不了makefile
GDB.exe
也是可以集成进来的,不过不要忘了参数(Arguments)应为-g-Wall-o$(ItemFileName)$(ItemFileName)$(ItemExt)-time,其中参数-g生成调试信息。GNU调试器可利用该信息。

更多精彩内容其他人还在看

parse_url函数解析

  描述  array parse_url ( string url )      此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为:      scheme - ...
收藏 0 赞 0 分享

visualstudio2019怎么连接并使用VSTS?

visualstudio2019怎么连接并使用VSTS?visual studio 2019使用的时候,想要连接visual studio team service,该怎么操作呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode怎么规范代码? vscode代码格式化的教程

vscode怎么规范代码?vscode编程开发的时候,发现代码很轮,想要自动格式化代码,该怎么操作呢?下面我们就来看看vscode代码格式化的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Sublime Text英文字母大小写怎么切换?

Sublime Text英文字母大小写怎么切换?Sublime Text中编程开发的时候,想要切换英文大小写,该怎么切换呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

CodeBlocks(vc开发工具)的入门使用教程

今天起我们将加大对其他编译器学习的支持,对于训练场中的题目,我们极力建议大家以CodeBlocks作为编程工具,因为VC6的种种问题及与训练场判题系统标准的不符,导致不少新同学被坑不少
收藏 0 赞 0 分享

Sublime代码编辑器怎么重新打开编码?

Sublime代码编辑器怎么重新打开编码?Sublime代码编辑器之前变价的编码想要打开,该怎么打开呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

vb怎么将年表分成四份季度表?

vb怎么将年表分成四份季度表?visual basic中的一个表想要分成多分表,该怎么实现呢?我们可以使用代码实现,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

VB怎么编写给表格快速添加批注的代码?

VB怎么编写给表格快速添加批注的代码?想要给表格中的数据添加批注,我们可以使用vb代码来实现,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

UltraEdit怎么修改选中文本的颜色?

UltraEdit怎么修改选中文本的颜色?UltraEdit编程开发的时候,想要修改文本的颜色,该怎么修改选中文本的颜色呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

ueditor编辑器怎么修改复制粘贴文档源代码的字体?

ueditor编辑器怎么修改复制粘贴文档源代码的字体?ueditor复制来的代码想要编辑一下,该怎么设置代码字体大小呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多