环境

宿主机:ubuntu 16.04

交叉编译:gcc-linaro-4.9-2014.11

ubuntu自带源 eclipse 安装(想使用新版直接跳过)

安装eclipse

sudo apt-get install eclipse-platform

安装C/C++开发插件

sudo apt-get install eclipse-cdt

在命令行输入 eclipse 即可启动

第一次启动会要求设置默认工作区,选择一个workspace 目录即可,后面的工程均可放在里面。

eclipse-cpp-2019-06-R-linux-gtk-x86_64 使用

1.eclipse新版C/C++开发包下载

下载地址:https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2019-06/R/eclipse-cpp-2019-06-R-linux-gtk-x86_64.tar.gz

2.eclipse运行环境 jre 下载,当然也可以使用 jdk, ubuntu也自带了 openjdk

jre下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

我下载的 jre-8u221-linux-x64.tar.gz

解压安装

tar -xzvf eclipse-cpp-2019-06-R-linux-gtk-x86_64.tar.gz
tar -xzvf jre-8u221-linux-x64.tar.gz

到解压目录执行 ./eclipse

新版eclipse太占内存了,刚开始启动1G内存提示不够用,需要设置进行内存优化

还是使用老版,接下来的设置均采用老版。

eclipse工程示例及设置

1.新建工程

file->new->C project

填写工程名称,会自动生成工程目录;选择交叉编译 Cross GCC

设置交叉编译器

2. eclipse常用设置

右击工程,选择 properties-> C/C++ Build

建议使用自己的Makefile使工程更加灵活性,去掉自动生成makefile,若使用eclipse自动编译则另外应详细设置 Setting 项

3. 交叉编译调试gdb设置

4. Linux内核开发eclipse环境配置

当开发内核模块、内核驱动、内核修改时均需要配置为对应内核版本

当eclipse导入 相关配置宏定义、头文件路径时,便于源码的检错和查看。

配置步骤:

1.导出eclipse的 Paths and Symbols配置xml模板

工程上右键properties---->C/C++ General--->Paths and Symbols

右下角选择Export Settings ,自定义xml文件路径名称,一般放在工程目录下即可

我导出到 ~/workspace/wh_fsu/symbol.xml

2. 生成内核配置xml文件

内核配置文件为 .config,最好使用其编译时生成的 autoconf.h 文件来转化为 xml 文件;

注意 autoconf.h 在 make 时才会生成,位置在 linux-4.1.15/include/generated/autoconf.h

转化命令

cat autoconf.h |grep define |awk '{print "<macro><name>" $2 "</name><value>" $3 "</value></macro>"}' > symbol.xml

修改工程的xml文件

1)添加头文件目录

常用的有:

linux-4.1.15/include

linux-4.1.15/arch/arm/include

linux-4.1.15/arch/arm/mach-mxs

添加到第一个<language name="C Source File">和 </language>之间

<language name="C Source File">

<includepath>/home/wangh/Tools/linux-4.1.15/include</includepath>
<includepath>/home/wangh/Tools/linux-4.1.15/arch/arm/include</includepath>
<includepath>/home/wangh/Tools/linux-4.1.15/arch/arm/mach-mxs</includepath> </language>

2)然后将autoconf.h转化的xml文件里面的内容 全部拷贝到 第二个<language name="C Source File">和 </language>之间

同时添加一行

<macro><name>__KERNEL__</name><value>1</value></macro>

修改好后,import  Settings 效果如下

添加自己的内核模块 Makefile 示例

其中内核目录 KERNEL_4115_PATH 我定义在环境变量中了

ifneq ($(KERNELRELEASE),)
obj-m := wh_gpio.o
else
PWD := $(shell pwd)
KDIR:=$(KERNEL_4115_PATH)
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions *~ *.order *.symvers
endif

eclipse的C/C++开发搭建的更多相关文章

  1. 搭建Eclipse、Resin Web开发环境

    搭建Eclipse.Resin Web开发环境 一.当然是安装java开发环境 参看: Java环境的搭建 http://www.cnblogs.com/ghj1976/archive/2010/04 ...

  2. Android SDK +Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建

    Android SDK+Eclipse+ADT+CDT+NDK 开发环境在windows 7下的搭建 这几天一直在研究 Android SDK  C/C++平台的搭建,尽管以前有成功在Windows ...

  3. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  4. eclipse工具下hadoop环境搭建

    eclipse工具下hadoop环境搭建:    window10操作系统中搭建eclipse64开发系统,配置hadoop的eclipse插件,让eclipse可以查看Hdfs中的文件内容.     ...

  5. 基于Eclipse的Hadoop应用开发环境配置

    基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...

  6. eclipse下的webservice开发

    关于eclipse下的webservice开发,有非常多的教程,这里只记下学习过程中的弯路: 1.无论是CXF模式还是AXIS模式,在出现start server之后,点击next报错:"s ...

  7. Spark:利用Eclipse构建Spark集成开发环境

    前一篇文章“Apache Spark学习:将Spark部署到Hadoop 2.2.0上”介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上 ...

  8. Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解

    http://hi.baidu.com/ltb6w/item/3a51f11926fda60ce75c361d Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解 ...

  9. eclipse中配置c++开发环境 Eclipse + CDT + MinGW

    转自eclipse中配置c++开发环境 Eclipse + CDT + MinGW 基本框架:Eclipse + CDT + MinGW 背景知识: CDT:CDT 是完全用 Java 实现的开放源码 ...

随机推荐

  1. leetcode最短无序连续子数组

    平民解法: 既然是找最小数组,那就得到一个排序好的数组,然后直接和初试数组比对,用一个left,right分别记录从最初开始不同,到最后不同的小标,最后左右做差再加一,就能得到长度. 其他解法: 双指 ...

  2. 承载童年的游戏机,已停产!但我在 GitHub 找到了它们

    那些年,上网用的是电话线,小企鹅也只会笨拙地左右摇晃,手机还只是打电话的工具.虽然那些年没有互联网,但游戏机承载了我的童年. 小时候我老是追着我的两个哥哥,他们带我玩了好多种游戏机,比如街机.红白机. ...

  3. skywalking简介

    监控的分类 Logging,Metrics和Tracing Logging用于记录离散的事件例如,应用程序的调试信息或错误信息,Logging是我们诊断问题的依据. Metrics用于记录可聚合的数据 ...

  4. C语言复习(六)----typedef 的作用

    typedef的作用 重命名变量:typedef unsigned int Uint;//可以使用Uint代替unsigned int 定义新的数据类型 typedef struct Books{ c ...

  5. Maven 基础标签之版本管理和冲突解决

    前言 我们在做java项目的时候由于jar包太多,我们就需要使用maven做项目管理,管理项目的jar包依赖,包括打包上线 maven基础 Maven 是一个项目管理工具,主要用于项目构建,依赖管理, ...

  6. 浅谈C#取消令牌CancellationTokenSource

    前言 相信大家在使用C#进行开发的时候,特别是使用异步的场景,多多少少会接触到CancellationTokenSource.看名字就知道它和取消异步任务相关的,而且一看便知大名鼎鼎的Cancella ...

  7. SpringMVC学习08(拦截器)

    8.拦截器 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.开发者可以自己定义一些拦截器来实现特定的功能. 过滤器与拦截器的区别: ...

  8. 【加解密】使用CFSSL生成证书并使用gRPC验证证书

    写在前面的话 CFSSL是CloudFlare旗下的PKI/TLS工具.可以用于数字签名,签名验证和TLS证书捆绑的命令行工具和HTTP API服务器. 是使用golang语言开发的证书工具. 官方地 ...

  9. WPF学习笔记二 依赖属性实现原理及性能分析

    在这里讨论依赖属性实现原理,目的只是学习WPF是怎么设计依赖属性的,同时更好的使用依赖属性. 首先我们来思考一个简单的问题:我们希望能验证属性的值是否有效,属性变更时进行自己的处理.回顾一下.net的 ...

  10. 解决log4net多进程日志文件被占用

    <log4net debug="true"> <appender name="RollingLogFileAppender" type=&qu ...