1. 苏葳的备忘录首页
  2. 开发工具

Win下Cygwin及Eclipse C++开发环境的安装

cygwin eclipse c语言本机上的VMware 8.0能配置64位 linux虚拟硬件,并安装rhel 5.5成功,但linux图形环境使用eclipse始终不太舒服。应用最终将在rhel 5.5和gcc环境下编译运行,因此在winxp下安装eclipse,并安装gcc for windows 成为选择。在mingGW和cygwin上,自然选择了后者。

从Cygwin主页下载,只有setup.exe一个文件。运行,将会让用户选择是从internet直接安装,下载,或者从本地目录安装。因cygwin整个系统是一组包文件。

选择只从internet下载,以备重装之用。仅选择了开发库,大约有800多M。

下载后,运行setup.exe 选择了库的保存目录,安装顺利完成。

启动cygwin环境,gcc –version正常打印版本信息,4.5.X版本大概。

然后下载eclipse CDT集成开发环境。解压缩后,在创建工程时,直接有选择C编译环境的选择,因本机先前有VS编译环境,所以自然有cygwin和vs的两种选择,选择第一种。这里比较奇怪,cygwin安装时大约不会写注册表,那么eclipse怎么知道存在cygwin的gcc编译器呢?不去管它。

创建个ansi C的样例程序,build成功,运行,问题出现了,无错误提示,也无结果输出。

在eclipse中未找到选择c 编译器的地方,以前eclipse java开发环境是有的。想想,cygwin的shell其实是个unix bash的模拟器,而elcipse直接运行cygwin编译器生成的程序,因未在cygwin环境下运行,自然不会成功。在windows文件夹下直接双击testc.exe,果然报错。恍然大悟,将cygwin的运行库文件cygwin1.dll 拷入windows的system32目录下,在ecliipse环境下运行testc程序,输出正常,在win系统下直接运行testc程序,亦正常。

Cygwin1.dll大约起了将C函数包装成unix api的作用。

注:后期重启eclipse时(使用的大约是3.7版本),发现cygwin gcc居然消失了,删除workspace目录也没有用,重新安装eclipse也无用,纠结很长时间。后来发现取消下面选择适用本平台gcc编译器的复选框,然后手工指定cygwin编译器,仍可以正常编译。只是不知为何出现过的cygwin gcc选项消失了。

调试问题:调试时果然如一些文章所称出现了错误,简单的说就是windows目录与unix文档目录间映射出了问题。在windows->preference->c/c++->debug->source lookup path中,添加一条目录映射,将/cygdrive/e映射为e:\,这样gdb将可正确找到存放于e盘相应目录下的源文件。映射有优先次序,将此条置于最上一条,即可正常调试。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/335.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)