把 gcc/g++ 集成到 Visual C++ 2005 中

转载 2006年06月09日 00:19:00

在VC2005中,如何调用其它编译器编译cpp文件呢?

在VC2005中不能编译单个.cpp文件,除非把它放在工程中。但是,我们可以通过调用外部工具实现编译单文件。

下面以调用G++为例说明如何编译cpp文件。如果要编译单个.c文件,使用gcc即可,方法同理。

首先获取Windows版的 GNU C++ Compiler (g++)。你可以通过安装 Cygwin 或者 MinGW 来获得 g++ for Windows.

以MinGW为例,我们可以下载Dev C++, Dev C++目前最新版为4.9.9.2。安装 Dev C++的同时就安装了MinGW,其中包含了 G++ 3.4.2,

假设 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同理。 

好,下面切换到main函数所在文件,点击工具(Tools)菜单下的“GNU C++ Compiler”

如果编译没有出错,对于早期版本的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++生成的程序才能被运行!


下面讲讲如何设置快捷键。

点击菜单中的"工具->自定义",

点击右下角的 "键盘",

点击 "按快捷键" 下面的文本框,

按下 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++工具条中。


如果感兴趣,你还可以把make.exe等添加到VC2005的外部工具中,以实现编译整个工程的目标。当然,在工程中少不了makefile.

GDB.exe也是可以集成进来的,不过不要忘了参数(Arguments)应为 -g -Wall -o $(ItemFileName) $(ItemFileName)$(ItemExt) -time,其中参数 -g 生成调试信息。GNU 调试器可利用该信息。

在sublime中配置gcc/g++环境

在sublime中配置gcc/g++环境第一次使用sublime进行c++学习的过程中遇到的一些问题,包括代码的编译与运行需要用到gcc/g++的编译环境,现在已经顺利解决。本文是对问题的一个总结,解...
  • Sharp_Zjf
  • Sharp_Zjf
  • 2015年10月12日 19:46
  • 1396

[心得]利用docker做编译库环境总结

升级gcc4.8.4,遇到的一些坑总结在这里。首先是要检查docker有哪些镜像: docker images 发现我们要的那个image没有先清理掉之前限制的docker container:d...
  • cmrsautomation
  • cmrsautomation
  • 2016年10月18日 14:37
  • 2057

OJ提交题目中的语言选项里G++与C++的区别

一、OJ提交题目中的语言选项里G++与C++的区别 http://www.th7.cn/Program/cp/201405/199001.shtml 首先更正一个概念,C++是一门计算机编程语言,...
  • hermito
  • hermito
  • 2016年05月22日 08:52
  • 2027

Visual C++ 2005的现代语言特性

Visual C++ 2005的现代语言特性     本文讨论: .NET C++/CLI语法 配置向导优化(PGO) MSIL优化 OpenMP支持 增强的缓冲区安全检查    ...
  • S_52588
  • S_52588
  • 2012年08月03日 11:57
  • 1091

使用visual c++ 2005远程调试64位系统上32位与64位程序

一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了。 远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调...
  • cackeme
  • cackeme
  • 2013年07月15日 15:40
  • 1352

Visual C++2005中的自动更新版本信息!

visual c + + 不支持自动增加版本资源的信息的功能。即重编译项目,编译的项目版本不会随着编译次数的增多而变化。如果要这么做,那么必须手动修改配置信息~~这太麻烦了!!下面介绍一个如何在自己的...
  • m9551
  • m9551
  • 2012年01月14日 23:12
  • 1546

详解Visual C++ 2005中的突破性变化[转载]

最近调程序总是遇到莫名其妙的问题,分析后发现均是由于vs2005与vc6不同造成的,自嘲一下。为了避免再被这种问题纠缠,从网上找来一篇vs2005与vc6不同的文章,学习学习~~~作者:谢启东编译转载...
  • crazy_du123
  • crazy_du123
  • 2011年02月24日 15:42
  • 1477

利用 Visual C++ (2005 以上)安裝 wxWidgets 的簡單步驟

利用 Visual C++ (2005 以上)安裝 wxWidgets 的簡單步驟 By closer on December 9, 2008 8:15 PM | Permalink |...
  • tnt32
  • tnt32
  • 2011年08月07日 09:03
  • 422

在 Visual C++ 中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误

当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误之一: nafxcwd.lib(afxmem.obj) :e...
  • mail_cm
  • mail_cm
  • 2012年10月09日 18:37
  • 481

Microsoft Visual C++ 2005 Redistributable不能删除旧版本的问题

帮助领导搞Matlab 2010a 绿色版; 领导把绿色版的文件夹挪了一下位置 (领导就是领导,做什么都按照自己的想当然的想法做) 然后, 脆弱的绿色版Matlab 2010a Portable就罢...
  • stereohomology
  • stereohomology
  • 2011年12月04日 17:18
  • 41830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把 gcc/g++ 集成到 Visual C++ 2005 中
举报原因:
原因补充:

(最多只允许输入30个字)