在Visual C++ 中如何调用其它编译器编译cpp文件呢? 换句话说如何把其它编译器集成到VC的IDE中呢?
象IIC这样的编译器安装之后会自动集成进来要集成其他编译器那还得自己动手下面介绍一种简单的方法
另外在VC的IDE中是不能编译单个cpp文件的除非把它放在工程中但是我们可以通过调用外部工具实现编译单文件
把clexe添加到外部工具的方法这里就不介绍了大家参照下面添加gcc的方法再查阅clexe的参数说明就能试着添加进来
下面以调用G++为例说明如何编译cpp文件如果要编译单个c文件使用gcc即可方法同理
首先获取Windows版的 GNU C++ Compiler (g++)你可以通过安装 Cygwin 或者 MinGW 来获得 g++ for Windows
以MinGW为例我们可以下载Dev C++ Dev C++目前最新版为安装 Dev C++的同时就安装了MinGW其中包含了 G++
假设 Dev C++ 安装在 D\DevCpp 目录下
下面我们在VC的菜单点击 工具(Tools) > 外部工具(External Tools) > 添加(Add)
分别填入
标题(Title) GNU C++ Compiler
命令(Command) D\DevCpp\bin\g++exe
参数(Arguments) Wall o $(ItemFileName) $(ItemFileName)$(ItemExt) time
初始目录(Initial directory) $(ItemDir)
再钩选下面的使用输出窗口(Use Output window)
说明如果你已经把D\DevCpp\bin\目录添加到系统环境变量中那么 Command指定为g++exe即可Cygwin同理
这些参数只是一个参考你可以查阅VC编译器的宏设置你需要的参数
干脆顺带补充一下Digital Mars C++编译器的参考参数设置
标题(Title) Digital Mars
命令(Command) C\dm\bin\dmcexe
参数(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++将输出类似以下的信息
# ccplus
# as
# collect
这是 time 报告的编译过程中每个子过程所占用的CPU时间
当然你还可以更改编译参数使输出窗口输出其他编译信息
我们还可以通过添加外部工具来实现运行g++生成的程序的功能步骤如下
在VC的菜单点击工具(Tools) > 外部工具(External Tools) > 添加(Add)
分别填入
标题(Title) Run as C++ Application
命令(Command) %systemroot%\system\cmdexe
参数(Arguments) /c $(ItemFileName)exe
初始目录(Initial directory) $(ItemDir)
不要钩选下面的使用输出窗口和退出时关闭
注意cpp文件必须放在工程中g++生成的程序才能被运行!
另外用MinGW的g++编译的程序不能在没有安装MinGW的Windows系统上运行因为它依赖于MinGW库
即便是通过VC编译出的不带预编译头的Win控制台应用程序也就是用空环境这样编译出来的可执行文件也不是放在哪台机子都能跑的
下面讲讲如何设置快捷键
点击菜单中的工具>自定义
点击右下角的 键盘
点击 按快捷键 下面的文本框
按下 Shift + Ctrl + F 如果这个快捷键已经分配给了其他的命令更换一个即可
在显示命令包含 中填入工具外部命令 再点击 分配 按钮
点确定再点关闭
这样就给 GNU C++ Compiler 分配了快捷键 Shift + Ctrl + F
注意刚才是在GNU C++ Compiler 位于 外部工具菜单的第项的情况下在显示命令包含 中填入工具外部命令!
同理我们可以给 Run as C++ Application 分配一个快捷键
再讲讲如何分配一个工具条
点击菜单中的工具>自定义 点击 工具栏 选项卡
点击新建
在工具栏名称中填入g++
切换到 命令 选项卡
点击 类别 中的 工具
在右边的命令把 外部命令 拖动到刚才建立的g++工具条上
先不要关闭 自定义 对话框
下面单击g++工具条上的 GNU C++ Compiler 按钮
再点击自定义 对话框 中的 修改选中的内容按钮设置工具条中按钮的名称和文字等属性
Run as C++ Application 也可以通过这种方式放到g++工具条中
通过这样的集成为初学者学习纯C++提供了便利我认为对于标准C++的初学者而言不能认为用VC编译通过就万事大吉了用g++编译检查一次是必要的现在我们只需要按一下快捷键就知道了这份代码是否能通过其它编译器例如g++的编译不用再切换到命令行来重新编译程序
但是若想把g++的输出结果输出到错误列表或者是用VC的IDE来调试g++生成的程序应该是绝无可能了其实也没什么必要个人认为
感觉g++的错误提示比VC要智能得多这有利于我们快速地找到问题的根源
如果感兴趣你还可以把makeexe等添加到VC的外部工具中以实现编译整个工程的目标当然在工程中少不了makefile
GDBexe也是可以集成进来的不过不要忘了参数(Arguments)应为 g Wall o $(ItemFileName) $(ItemFileName)$(ItemExt) time其中参数 g 生成调试信息GNU 调试器可利用该信息