Eclipse 3.3已经发布好一段时间了。我曾用Eclipse之前的版本加上CDT组件开发C/C++程序。但是也许是因为对配置不够熟悉的缘故,配置起来非常痛苦,使用起来也觉得特别别扭,所以最后还是不得不换用了VC 2005 Express。
Eclipse 3.3的下载页面中,针对不同的开发人员提供了不同的下载包。其中“Eclipse IDE for C/C++ Developers”一项让人有“Eclipse能很好的支持C/C++开发”的感觉。毕竟这是一个针对C/C++开发的专版,不像安装插件那样让人始终觉得有“附加功能”的感觉。
下载Eclipse IDE for C/C++ Developers之后第一件事就是查阅帮助。“Before you begin”一章说明Windows用户主要应使用MinGW或Cygwin的C/C++开发环境,并对使用MinGW的情况加以大篇幅的说明。看样子在Windows下使用Eclipse CDT作为IDE开发C/C++,想使用VC的编译器难度有点大,而用MinGW环境应该是最优选择。
在MinGW主页(http://www.mingw.org/)很容易找到MinGW的下载页面。之后看到一大堆需要下载的包,头都大了。于是决定下载Automated MinGW Installer,让它在线下载安装MinGW及一些需要的组件。几本上只需要安装gcc组件就够了。
打开Eclipse,照例是HelloWorld。不过在开始写程序之前还是习惯性地先去看看配置选项。General->Editors->Text Edtiors里把Show line numbers勾上了。按照编码规范每行代码是不应该超过80个字符的,所以勾上了Show print margin并将Print margin column设置成80。毕竟有一条参考线在编辑窗口中心里更有底。顺便把Insert spaces for tabs也勾上了,用空格代替制表符。后来编辑C++代码的时候发现缩进插入的仍然是制表符而不是空格。这才想起去C/C++->Code Style里去设置。
然后在C/C++->Editor->Syntax Coloring里去设置了一下语法高亮的格式。把所有粗体都取消了,把表示静态和常量的斜体也都换成了下划线。多年的习惯,看粗体和斜体就是不顺眼。
最后还在C/C++->New CDT project wizard里把MinGW设置成了默认的toolchain(选中MinGW GCC,点击Make tookchain preferred按钮),这样以后新建工程的时候就不用每次还要去点选一下了。
现在该新建HelloWorld项目了。从菜单File->New->C++ Project就打开了创建C++项目的向导。输入工程名并选好目录之后就可以Finish了,如下图。如果Next到下一页是选择Debug和Release两个配置。默认都是选中的。
工程建好后默认就把一些公用头文件的目录加在了Include设置里面,如图:
在工程属性里(Project->Properties)可以找到设置的地方,就在C/C++ General->Paths and symbos选项卡中,Inclues子卡里面。因为当前项目是C++ Project,所以Language选择GNU C++,右边的Include paths窗口就把包含的头文件目录都列出来了,如下图。如果项目需要包含其它头文件目录,也可以在这里添加。添加其它头文件目录的时候,通过GUI选择的路径是以绝对路径的方式添加进去的,也可以手工改成相对于当前工程目录的路径。
如果还需要设置链接的静态库,可以在Library paths里添加静态库所在的目录。但是,添加了静态库目录之后还需要添加需要链接的静态库,这就要在C/C++ Build->Settings里设置了。在这一设置的Tool settings选项卡中,找到MinGW C++ Linker->Libraries设置,这里可以添加需要链接的静态库(-l),也可以添加/修改这些静态库所在的目录(-L)。不过在这里添加静态库目录时使用相对路径似乎有点小问题,所以我一般就在上面提到的地方添加目录了。添加静态库的子窗口如下图:
项目属性中还有一个设置需要注意,就是C/C++ Build->Environment中的环境变量设置。主要是看有没有添加一个包含MinGW的bin目录的PATH变量。这个变量在创建工程的时候一般会自动添加。但如果没有正确设置PATH变量,编译的时候就会报错说不能运行g++或者gcc。如下图:
设置都差不多了,在项目中新添加一个名为main.cpp的Source File,输入测试代码:
- #include <iostream>
- using namespce std;
- int main(int argc, char* argv[]) {
- cout << "Hello World!" << endl;
- return 0;
- }
然后右键编辑器内部,从菜单中选择Run As->Local C/C++ Application即可编译运行。如果需要调试,应该选择Debug As->Local C/C++ Application。不过每次使用Debug的时候都会报错,因为MinGW没有装gdb。以后有空再慢慢装吧。