在Visual C++2008中调用GCC/G++编译单文件 .

在Visual C++2008中调用GCC/G++编译单文件

分类: VC/C++/C 397人阅读 评论(2) 收藏 举报
在VC2008中,如何编译单文件呢? 除了用cl.exe命令行方式外,能否在IDE中实现? 这里有一个技巧:

 

在VC2008中不能编译单个cpp文件,必须把它放在工程中。但是,我们可以通过调用外部工具实现编译单文件。下面以调用GCC/G++为例说明如何编译cpp文件。

首先下载Dev C++, 目前最新版为4.9.9.2。安装 Dev C++的同时就安装了MinGW,其中包含了GCC 3.4.2,

假设 Dev C++ 安装在 D:\Dev-Cpp 目录下。

下面我们在VC2008的菜单点击Tools -> External Tools -> Add

分别填入:

Title: GNU C++ Compiler

Command: D:\Dev-Cpp\bin\g++.exe

Arguments: -Wall -o $(ItemFileName) $(ItemFileName)$(ItemExt)

Initial directory: $(ItemDir)

再钩选下面的 Use Output window.

 

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

如果编译没有出错,Output window是没有任何输出的。当然,你可以修改命令参数,使Output window输出其他编译信息。

如果编译出错,那么错误提示比VC编译器的提示要智能的多,有助于迅速找出问题所在.

注意:cpp文件必须放在工程中,g++生成的程序才能被运行!

另外,用MinGW的g++编译的程序不能在没有安装MinGW的Windows系统上运行。因为它依赖于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++的输出结果输出到错误列表,或者是用VC的IDE来调试g++生成的程序,应该是绝无可能了。其实也没什么必要。个人认为。

感觉g++的错误提示比VC要智能得多,这有利于我们快速地找到问题的根源。

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

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


 

//文章出自于:http://www.yuanma.org/data/2006/0531/article_529.htm

更多 0
查看评论
2楼 yuucyf2012-02-06 08:57发表 [回复] [引用][举报]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值