`

Android原生(Native)C开发之十:用Code::Blocks来开发

 
阅读更多

-- 用Code::Bocok搭建Android Native可视化开发环境


可能很多朋友一直用文本编辑器来写Android的程序,经常会出现一些变量写错一个字母或少逗号分号的情况,直到编译时才会有错误提示,而且效率不高。如果你正为这个苦恼的话,我郑重且强烈地向你推荐:Code::Blocks!


关于Code::Blocks,我就不多介绍了,只记得三年前用过后,就很少用Dev C++及VC系列了,请从如下URL下载Nightly builds版本(强烈推荐用Nightly版,虽然有点不稳定,但有很多新功能):
http://forums.codeblocks.org/index.php/board,20.0.html
Windows版一般需要下载三个文件:

下载这三个文件后,解压至同一个目录,就完成了安装,下面我们就来一步一步设置Android的IDE开发环境!
首先,假设你已经配置好了Cygwin的Android的arm开发环境(详情请参见另一篇:Android原生(Native)C开发之八:Toolchain环境搭建篇),打开CodeBlocks,选择菜单“Settings->Compiler and debugger...”,如下图:


在弹出的窗口中选取“GNU ARM GCC Compiler”,当然也可以Copy一个新的,但为了方便就用这个了,再进行如下设置:

  • 将“Toolchain executables”页的“Compiler's Installation directory”设置为你的toolchain的目录;
  • 将“Toolchain executables”页的“Program Files”所有arm-elf-xxx.exe改为arm-eabi-xxx.exe;
  • 在“Toolchain executables”页的“Additional Paths”加入Cygwin的bin目录,因为toolchain是用Cygwin构建的,需要Cygwin的运行库,如“D:/Cygwin/bin”;
  • 在“Search directories”页的“Compiler”中加入Toolchain的头文件目录,并假设你已将Android所有庆文件复制至此目录,如“E:/toolchain/lib/gcc/arm-eabi/4.2.1/include”;
  • 将“Other settings”的“Compiler logging”改为“Full command line”,这样就能看到编译器是如何编译链接的。

至此,CodeBlocks交叉编译器基本设置完成,按“OK”保存,可以开始测试IDE开发环境了!

选择菜单“File->New->Project...”,在弹出的窗口中选择“Console application”(在第一排的最后一个),双击或点击“Go”按钮,在弹出的语言窗口中选择“C”语言(因Android Toolchian对C++的支持不怎么全),再点击“Next”按钮,将出现设置Project路径的窗口,先选择项目要保存的目录,再输入项目的标题,系统会自动生成项目的文件名及保存路径,如目录为:C:/projects,标题为: test,则项目文件名为:test.cbp,保存路径为:C:/projects/test/test.cbp,再连续点击“Next”按钮即可生成新项目,可能会有一些提示,可以忽略。
这个时候你就可以选择菜单“Build->Build”或按“Ctrl-F9”来编译项目,下面的消息面板“Build Log”应该显示如下:
arm-eabi-gcc.exe -Wall -g -IE:/toolchain/lib/gcc/arm-eabi/4.2.1/include -c main.c -o ./main.o
arm-eabi-g++.exe -o ./test.exe ./main.o
/cygdrive/e/toolchain/lib/gcc/arm-eabi/4.2.1/../../../../arm-eabi/bin/ld: crt0.o: No such file: No such file or directory
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 1 seconds)
0 errors, 0 warnings
可以看到,编译main.c成功,但链接时出错,没关系,接下来我们来设定项目的编译链接选项!
选择菜单“Project->Build options...”,将显示项目创建选项窗口中的“Compiler settings”页,再选择“Other options”,输入如下内容(详情请参见另一篇关于编译选项的文章:Android原生(Native)C开发:编译选项小结):
-include AndroidConfig.h
-fpic
-ffunction-sections
-funwind-tables
-fstack-protector
-fno-short-enums
-fomit-frame-pointer
如下图:


编译选项设置完成,再来设置链接选项。选择“Linker settings”页,点击左边“Link librarys”方框中的“Add”按钮,在弹出的窗口中输入:c(注意为小写,即需要动态链接libc.so库),再按“OK”按钮即可,再在右边的“Other link options”方框中输入如下内容(其中的E:/toolchain为toolchain的安装目录):
-nostdlib -Bdynamic
-Wl,-T,armelf.x
-Wl,-dynamic-linker,/system/bin/linker
E:/toolchain/arm-eabi/lib/crtbegin_dynamic.o
E:/toolchain/arm-eabi/lib/crtend.o
如下图:


最后按“OK”按钮保存所有的设置,再选择菜单“Build->Rebuild”或按“Ctrl-F11”来重新编译项目,下面的消息面板“Build Log”应该显示如下:
arm-eabi-gcc.exe -Wall -g -include AndroidConfig.h -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -fomit-frame-pointer -DANDROID -IE:/toolchain/lib/gcc/arm-eabi/4.2.1/include -c main.c -o ./main.o
arm-eabi-g++.exe -o ./test.exe ./main.o -nostdlib -Bdynamic -Wl,-T,armelf.x -Wl,-dynamic-linker,/system/bin/linker E:/toolchain/arm-eabi/lib/crtbegin_dynamic.o E:/toolchain/arm-eabi/lib/crtend.o -lc
Output size is 7.58 KB
Process terminated with status 0 (0 minutes, 2 seconds)
0 errors, 0 warnings
编译成功,可以push到模拟器中去运行了!
分享到:
评论

相关推荐

    集成开发C语言编译器:Code::Blocks

    Code::Blocks是一个强大的集成开发环境(IDE),支持多种编程语言,包括C、C++以及Fortran等。它具有以下主要功能: 高级的源代码编辑:Code::Blocks提供了一个具有语法高亮、代码折叠、自动完成和参数提示等功能的...

    CODE::BLOCKS GLUT 完整开发包

    code::blocks开发环境不错,但是不能直接使用glut开发opengl,要使用得配置。 这个里提供配置需要的完整开发包

    Code::Blocks8.02

    Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++...

    Code::Blocks for C_Cpp Novice2

    这是关于Code::Blocks的一些中文文档,对Code::Blocks感兴趣的童鞋可以下载学习。

    Code::Blocks使用手册

    内容全面,具体。 Code::Blocks Windows平台下一个C++ IDE,支持跨平台开发。

    Code::Blocks 10.05中文资源包

    看到不少的Code::Blocks 10.05中文资源包,基本都是用得8.02版的,汉化不全,针对Code::Blocks 10.05进行了汉化。

    Code::Blocks for C_Cpp Novice4

    这是关于Code::Blocks的一些中文文档,对Code::Blocks感兴趣的童鞋可以下载学习。

    Code::Blocks官方使用手册(CHM)

    Code::Blocks官方使用手册,CHM格式。

    [C++] C++ Code::Blocks 应用开发教程 (英文版)

    [Packt Publishing] C++ Code::Blocks 应用开发教程 (英文版) [Packt Publishing] C++ Application Development with Code::Blocks (E-Book) ☆ 图书概要:☆ Develop advanced applications with Code::Blocks ...

    Code::Blocks for C_Cpp Novice1

    这是关于Code::Blocks的一些中文文档,对Code::Blocks感兴趣的童鞋可以下载学习。

    Code::Blocks 17.12 中文版

    Code::Blocks 17.12 中文版 汉化方法: 1.关闭Code::Blocks 2.将share文件夹覆盖到Code::Blocks根目录下 3.打开Code::Blocks 4.依次点击Settings --> Environment... -->View 5 .将第二个选项...

    Code::Blocks SourceCode

    Code::Blocks Source Code

    32位code::blocks 20.03下载

    因为这个是不自带MinGW文件夹的,所以需要自己另外下载MinGW文件夹。下载点击安装,配合我博客的另一个MinGW文件夹即可开始使用code::blocks

    Code::Blocks 8.02 GCC 4.40 汉化包

    Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境.  相比于基于Delphi的Dev-C++共享C++IDE,Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets...

    Code::Blocks for C_Cpp Novice3

    这是关于Code::Blocks的一些中文文档,对Code::Blocks感兴趣的童鞋可以下载学习。

    Code::Blocks多语言包国(含简体中文包)

    Code::Blocks多语言包国(含简体中文包) 解压在CodeBlocks\share\CodeBlocks\locale目录下就 ok了

    Code::Blocks17.12

    Code::Blocks17.12下载文件,免费开源C/C++开发工具。

    svn Code::Blocks rev 6852 中文资源包

    在老邓的codeblocks集成环境中进行的汉化,使用方法:将此资源包放到CodeBlocks\share\CodeBlocks\locale\zh_CN目录即可,...view,勾选Internationalization,选择Chinese(Simplified),OK重启Code::Blocks中文界面了。

    code::blocks教程完整版

    上传code::blocks 10.05完整的教程,让你使用code::blocks编程时能得心应手,同时里面还包含了很多使用时常见的问题

    在windows下用免费的code::blocks和avr_gcc开发avr单片

    外国人搞的。在winodws下用code::blocks开发avr 单片机。有非常详细的文档说明,还有一个脚本插件。只需要用avr-gcc和code::blocks就可以非常方便的开发AVR。

Global site tag (gtag.js) - Google Analytics