转载网址:http://s99f.blog.163.com/blog/static/351183652008113051433281/

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

下面介绍一种简单的方法。

另外,在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-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系统上运行。因为它依赖于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 调试器可利用该信息。

将g++编译器集成到VC2005中相关推荐

  1. gcc编译器与g++编译器的区别

    gcc与g++编译器的程序文件分别为:/usr/bin/g++和/usr/bin/gcc. gcc 和 GCC 是两个不同的东西,GCC:GNU Compiler Collection(GUN 编译器 ...

  2. 嵌入式Linux系统编程学习之五gcc/g++编译器

    文章目录 前言 一.gcc/g++编译过程 二.静态库和动态库 三.gcc警告和优化选项 1.gcc警告 2.gcc优化选项 前言   对于.c格式的C文件,可以采用gcc或g++编译,对于.cc.. ...

  3. 让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

    第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改 [文章摘要] Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发 ...

  4. 【组队学习】【24期】集成学习(中)

    集成学习(中) 开源内容: https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearni ...

  5. 黄聪:Ubuntu下使用低版g++编译器编译TSE

    由于高版本的g++编译器语法比较严格,所以在编译TSE原代码tse* 的时候会出现一些语法错误,导致编译不通过,经过再网上搜索资料,终于把这个问题解决了.以下是摘录的网上资料,最后面附着的红字部分是自 ...

  6. [原创]浅谈持续集成在测试中的应用

    [原创]浅谈持续集成在测试中的应用 今天抽空理了下思路,来谈谈持续集成在测试中的应用,关于持续集成的介绍,可以参见我之前写的 浅谈我对持续集成的理解. 闲话少说,简单先介绍下,持续集成在测试中应用的范 ...

  7. Java SSH 集成框架开发中的错误解决

    记录一些Java 三大框架集成项目开发过程中发生的一些错误的解决,都是实际经验,记一下备忘.这些错误可以说比较诡异:有的目前尚未分析清楚原因,资料上也未说过. 一 找不到项目报404 一次在开发调试过 ...

  8. 在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以

    在vc2005中使用MoveWindow()调整控件大小,不能及时刷新,在vc6中则可以? // ------------------------------ vc2005 ------------- ...

  9. 将JavaScript集成到QML中

    将JavaScript集成到QML中 将JavaScript集成到QML中 使用JavaScript表达式获取属性值 在QML中添加JavaScript函数 使用JavaScript文件 将JavaS ...

  10. python运行程序的快捷键_在Python集成开发环境中,可使用快捷键()运行程序。...

    在Python集成开发环境中,可使用快捷键()运行程序. 更多相关问题 如何理解创新能力测试与创新能力的关系? 直埋线路与埋式电力电缆电压<35kv平行时最小间距为(). 放射性物品装卸作业时, ...

最新文章

  1. CentOS6.9编译安装Nginx1.12
  2. 搭建yum仓库定制rpm包
  3. Activiti中的安全脚本如何工作
  4. 深度解析开源推荐算法框架EasyRec的核心概念和优势
  5. linux java 日期 报错_Linux下java报错Too many open files的解决方法
  6. 如何用axure绘制图表_用Python绘制手绘风格的图表
  7. Matlab RRT算法三维轨迹规划及贪心算法轨迹优化
  8. 方波峰峰值和有效值_峰峰值,峰值,平均值,有效值的关系.pdf
  9. 它不是哆啦A梦 也能满足你的挑剔需求
  10. 计算机键盘上fn键,笔记本电脑键盘上Fn键的详细介绍
  11. iOS开发初学者入门需要学习哪些知识?
  12. Python爬取国家税务总局纳税信用A级纳税人信息!
  13. MATLAB如何提取曲线原始数据
  14. RatingDapp 数据周报 (2019/3/24 ~ 3/30)
  15. NKOI 1905 慢跑小路
  16. 泰山OFFICE技术讲座:一个字符,用哪个字体绘制
  17. 第一代云原生企业米哈游如何让想象发生?
  18. 在互联网上班是什么感觉?
  19. oracle 删除awr报告,学习笔记:Oracle awr入门 深入了解AWR报告
  20. GNSS产品下载链接

热门文章

  1. 牛腩新闻发布系统总结——网站发布和分页制作
  2. linux系统配置设置网络端口映射,Linux 配置端口映射
  3. 单片机 | Keli 调试程序
  4. WEB三大攻击之—SQL注入攻击与防护
  5. c语言plc编程软件下载,罗克韦尔plc编程软件下载-2017罗克韦尔plc编程软件V21.00 官方最新版 - 极光下载站...
  6. python与java通信——使用socket模块
  7. DSP28335看门狗复位
  8. pdf 模版 汉字和数字_PDF怎么添加数字签名?这款编辑器软件很多人都说好用
  9. PyQt5教程(二)——PyQt5的安装(详细)
  10. Linux 命令完全手册