Eclipse LUNA +MinGW+CDT编译C99项目

来源:互联网 发布:极简生活 知乎 编辑:程序博客网 时间:2024/05/19 23:03

最近项目加密算法使用了JNI实现,以前是在Xcode上写C代码测试,闲着无事在Win8.1上部署了一套C/C++开发环境,记录下部署过程。

1、Eclipse安装

Google刚推出正式版的Android Studio,试用了一下,直接把MAC电脑卡死了,果断弃之,官网上又没有集成ADT的Eclipse,于是找了个最新版的LUNA,

下载地址:http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr1a

下好之后,解压即可,里面已经集成了CDT,可以直接用来创建C/C++项目。

2、MinGW安装

创建完C++项目后,会发现什么也干不了,那是因为电脑上没有C/C++库文件和编译工具,于是又去安装MinGW。

下载地址:http://sourceforge.net/projects/mingw/files/

下载安装完后只是完成了MinGW的一小步,找到安装路径bin目录的mingw-get.exe,这是一个下载引导程序,和Android的SDK Manager.exe类似。

打开后选中要下载的文件,右键Mark for Installation,标记安装。吐槽一下,我没找到批量选中,只能一个一个去标记,所有的加起来估计上百个。全选中后,

Installation->Applay Changes,开始下载,貌似需要翻墙,我把VPN一关,就会失败,所以建议大家不要选择这种在线安装的方式,我整整弄了四个多小时才下完,离线安装百度一大堆,我这里就不介绍了。


3、编译C99项目

安装完MinGW,配置好它的环境变量,当我们重新创建项目时,发现多了个MinGW,这时创建项目,引入头文件,打印一句hello world,编译什么的,一切都Ok。

但当我将加密代码拷贝过来时,编译报错:

..\SimpleEncrypt.c:40:5: error: 'for' loop initial declarations are only allowed in C99 mode
     for (int i=0; i<index; i++) {

很明显,for循环不能用for(int i=0;i<index;i++),可以将它改为

    int i = 0;    for ( i=0; i<index; i++) {        result[k++] = str[i];    }


但我for(int i=0;i<index;i++)写习惯了,不想改,于是各种搜索,找了半天也没找到,最后只好自己去配置编译环境。

反正Eclipse的C/C++配置就那么一点,一个一个去找,还真让我找到了。

解决方案:选中项目->Properties->C/C++ Build->Settings->Tools Settings->GCC C Compiler->Dialect->Language standard,就可以选择编译模式了。






0 0