配置eclipse linux嵌入式 集成开发环境(编译部分)详细
来源:互联网 发布:圣象地板 知乎 编辑:程序博客网 时间:2024/06/05 19:22
开发环境:
ubuntu12.04(64位)
eclipse (c/c++)luna
注意:本文主要讲将eclipse配置好编译器。 远程调试的部分请看另一篇帖子 eclipse 调试环境配置。
我的arm-linux-gcc 路径是:/opt/EmbedSky/4.3.3/bin/arm-linux-gcc (什么?怎么看arm-linux-gcc的路径?? 你可以使用 which arm-linux-gcc 来察看)
我的linux 内核路径是:/opt/EmbedSky/linux-2.6.30.4
step1:
安装eclipse以及jdk的配置、交叉编译器的配置,这部分请看eclipse(c/c++)luna安装。
step2:
0、这一步假设你已经能正常打开eclipse arm-linux-gcc已经配置好。
1、打开eclipse,最好将工作空间设为nfs,以便你的板子挂载它。(nfs配置方法请看这个nfs挂载方法)。
打开后如图所示:
我已经建了个工程。你第一次打开肯定不是这样的。
2、新建一个工程: file->new->c project. 如图:
3、输入工程名称。
选择 Empty Project cross GCC。 finish就可以,具体配置我们等会再来配置。
step3:
下面让我们配置一番。
0、主要包括:取消makefile自动生成,配置编译器arm-linux-gcc,配置路径和符号。
1、取消eclipse自动生成 makefile :将General Makefile automatically的对勾去掉。 ok
3、配置编译环境:
在左侧项目栏右击项目名称 ->选择properties,在c/c++build-->setting里,把toolsetting中的command都改成arm-linux-gcc,arm-linux-gcc和arm-linux-as一共改这三个。
4、配置路径和符号:
选择 gun C ,点击右侧add 添arm-linux-gcc的一些头文件:
我的是:
/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/include
/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/include-fixed
/opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/include
/opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/usr/include
添加的时候别忘了选择(打钩):add to all configurations。
我们保存下配置: 点击下面的 export setting。 格式是xml文件,名字随便,位置随便,它是一个非常随便的文件 哈哈。
配置还没结束,这样的配置显然是不够的,我们干脆在xml文件中配置好了。
5、打开你保存的xml文件,我们来编辑他。用gedit打开就行。
在第一个
<language name="C Source File">
</language>
之间添入内核树的头文件的路径(include路径)。我的是:
<includepath>/opt/EmbedSky/linux-2.6.30.4/include</includepath>
<includepath>/opt/EmbedSky/linux-2.6.30.4/arch/arm/include</includepath>
<includepath>/opt/EmbedSky/linux-2.6.30.4/arch/arm/plat-s3c24xx/include</includepath>
注意格式。欲知详情,请学习 xml。这样内核树路径的问题就解决了,这里我想顺便提醒一句,你的内核编译过吗? 没编译过是不行的,编译驱动程序的时候会提示一个文件打死都找不到,赶紧make一遍吧!
6、找到 autoconf.h 我们需要这里面的宏定义,将这些宏放在symbols里面。具体做法:
我的autoconf.h文件在 /opt/EmbedSky/linux-2.6.30.4/include/linux 目录下。如果咱俩的版本不一样 请自己grep一下。
进到这个目录下,然后执行一下命令:
cat autoconf.h |grep define |awk '{print "<macro><name>" $2 "</name><value>" $3 "</value></macro>"}' > symbol.xml
这个命令的作用是将autoconf.h 文件里的宏 全部存放到 symbol.xml这个文件中。没成功??不可能吧,使用sudo试试
打开这个symbol.xml文件,复制文件中所有的文字 粘贴到 我们刚才从eclipse导出来的配置文件中(也是xml文件)。粘贴到的位置是:
第二个
<language name="C Source File">
</language>
的中间。
并在<language name="C Source File"> 下面手动加一条:
<macro><name>__KERNEL__</name><value>1</value></macro>
预览一下吧:
step5:
好了,配置文件总算弄完了,保存一下。 我们再打开eclipse的 gun c的那个配置界面,点击import setting按钮,将这个xml文件导进来。以后我们再建工程时直接导入这个配置文件就好了。
linux 驱动开发IDE就这样的打造好了。 写个教程不容易,转载请标注出处。http://blog.csdn.net/tianzhihen_wq
简单实验一下。 导入一个 .c文件和makefile
给你个例子:
#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk(KERN_ALERT "Hello, world\n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodbye, cruel world\n");} module_init(hello_init); module_exit(hello_exit);
ARCH=arm CROSS_COMPILE=arm-linux-gcc obj-m := hello.o KDIR :=/opt/EmbedSky/linux-2.6.30.4 PWD :=$(shell pwd) all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: $(MAKE) -C $(KDIR) M=$(PWD) clean
makefile需要根据你linux内核位置选择一下。 还有一点,由于我们是使用自己的makefile,编译的时候eclipse默认从工程目录下的Debug目录编译,这个位置可以从eclipse的
pwd 路径 选择,如图:
好多配置,我相信过5天后让我从头开始配置的时候肯定又忘了。。。所以转一份我的博文吧,转载请标注出处。http://blog.csdn.net/tianzhihen_wq
这写都配置完了,build一下吧,看看debug目录下有没有 .ko文件。 祝你成功!。
- 配置eclipse linux嵌入式 集成开发环境(编译部分)详细
- 【嵌入式linux】(第五步):使用eclipse集成开发环境开发第一个嵌入式Linux驱动
- 【嵌入式linux】(第五步):使用eclipse集成开发环境开发第一个嵌入式Linux驱动
- 【嵌入式linux】(第二步):安装交叉编译器(arm-linux-gcc)以及集成开发环境(eclipse)
- 【嵌入式linux】(第二步):安装交叉编译器(arm-linux-gcc)以及集成开发环境(eclipse)
- 【嵌入式linux】(第六步):使用eclipse集成开发环境开发第一个嵌入式Linux程序,并测试LED驱动
- editplus集成开发环境配置(配置编译环境)
- SldView嵌入式Linux集成开发环境
- 使用eclipse集成开发环境开发第一个嵌入式Linux驱动
- ubuntu 使用eclipse集成开发环境开发第一个嵌入式Linux驱动
- Eclipse配置NDK_R4开发环境(集成Cygwin 、CDT)
- Eclipse配置NDK_R4开发环境(集成Cygwin 、CDT)
- 嵌入式Linux交叉编译环境配置
- linux下配置QT嵌入式编译环境
- 配置opencv+eclipse集成开发环境
- ubuntu linux eclipse 集成hadoop开发环境
- eclipse SDK开发嵌入式linux应用程序——C/C++开发环境安装与配置
- Linux 交叉编译环境详细配置
- 大学数据结构(c++版) 王红梅版 疑惑——第二章
- Java初级工程师面试题大全
- 复数的加减计算...
- android----bluetooth
- notonlysuccess 线段树 高人推荐
- 配置eclipse linux嵌入式 集成开发环境(编译部分)详细
- SDL版Flappy bird代码分享
- C#中关于out和ref的使用
- sdutoj2484 算术表达式的转换 栈思想
- 连接数据库
- UVa12195 - Jingle Composing(strtok的使用)
- 模板名称决议
- 1412111930-hd-Easier Done Than Said
- oracle性能优化