分享
 
 
 

[原创]把其他C/C++编译器集成到VC2005中

王朝vc·作者佚名  2006-12-29
窄屏简体版  字體: |||超大  

在Visual C++ 2005中,如何调用其它编译器编译cpp文件呢? 换句话说,如何把其它编译器集成到VC2005的IDE中呢?

象ICC这样的编译器安装之后会自动集成进来,要集成其他编译器那还得自己动手。下面介绍一种简单、浅层的“集成”方法。

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

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

也许你现在还不知道G++。G++是GCC中的一员。GCC的含义是GNU编译器集合(GNU Compiler Collection),包括C、C++、Objective-C、Fortran、Java、Ada连同与这些语言相配的库等。GCC被誉为 “世界上最重要的软件”。许多免费的编译器都是GCC的移植版 — MinGW(Minimalist GNU 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同理。

这些参数只是一个参考。你可以查阅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++生成的程序才能被运行!

用MinGW的g++编译出的程序可以在没有安装MinGW的Windows系统上运行!

但是在Cygwin/gcc下编译出来的程序,在windows执行必须依赖cygwin1.dll。

通过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++工具条中。

但是若想把g++的输出结果输出到错误列表,或者是用VC的IDE来调试g++生成的程序,应该是绝无可能了。

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

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

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

通过这样的集成,为初学者在Windows环境下学习标准C++提供了便利。

初学者最好使用和标准一致的编译器和易于上手的集成开发环境。前者能够避免编译器不和ISO标准近似的情况,以及不能使用标准库的情况。而后者可以激发初学者的学习兴趣。

目前的编译器都嵌入到了软件开发工具和开发库的框架里边,例如VC。这些框架、环境、库都非常有用,但是要记住一点是,对这些工具的使用将会使你局限在单一的卖主上,局限在重要的执行性能上。因此这对初学者不能算是一个好事。

愚以为,对于标准C++的初学者而言,把代码用VC编译通过之后,再用g++编译检查一次,是一种好习惯。现在我们只需要按一下快捷键,就知道了这份代码是否能通过其它编译器(如GCC)的编译,不用再切换到其他IDE或命令行状态来重新编译程序。(http://blog.csdn.net/veiz)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有