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

2016-02-19 19:05 5 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享把其他C/C++编译器集成到VC2005中吧。

【 tulaoshi.com - 编程语言 】

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

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

  另外,在VC2005的IDE中是不能编译单个.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++目前最新版为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-Cpping++.exe

  参数(Arguments): -Wall -o $(ItemFileName) $(ItemFileName)$(ItemExt) -time

  初始目录(Initial directory): $(ItemDir)

  再钩选下面的"使用输出窗口(Use Output window)".

  说明:如果你已经把D:Dev-Cppin目录添加到系统环境变量中,那么 Command指定为g++.exe即可。Cygwin同理。

  这些参数只是一个参考。你可以查阅VC编译器的宏设置你需要的参数。

  干脆顺带补充一下Digital Mars C++编译器的参考参数设置:

  标题(Title): Digital Mars

  命令(Command): C:dmindmc.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是没有任何输出的。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  而对于较新版本的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%system32cmd.exe

  参数(Arguments): /c $(ItemFileName).exe

  初始目录(Initial directory): $(ItemDir)

  不要钩选下面的“使用输出窗口”和“退出时关闭”。

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

  另外,用MinGW的g++编译的程序不能在没有安装MinGW的Windows系统上运行。因为它依赖于MinGW库。

  即便是通过VC2005编译出的不带预编译头的Win32控制台应用程序,也就是用空环境,这样编译出来的可执行文件也不是放在哪台机子都能跑的。

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

  点击右下角的 "键盘",

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

  按下 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.tulaoshi.com/n/20160219/1619971.html

延伸阅读
Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少。怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢?其实现在很多流行的开发环境例如JBuilder、Eclipse都是使用纯Java开发的集成环境...
简介 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。假如你把函数的指针(地址)作为参数传递给另一个...
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。 !-- frame contents -- !-- /frame contents -- 作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的...
函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢? 假如我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 !-- frame contents -- !-- /frame contents -- 定义一个指向函数的指针用如下的形式,以上面的test()为例: ...
在VC中使用MATLAB C/C++函数库 作者: 殷延伟 下载示例代码1 下载示例代码2 MATLAB广泛应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等领域。因此如果在VC中对MATLAB进行调用将大大减少编程的工作量、保证程序的准确性,并且继承了VC++强大的功能,提高...

经验教程

928

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部