用kdevelop进行交叉编译的方法。
  首先提一下,我这篇文章,对于那些喜欢使用繁琐开发工具的达人们可以无视。
  嵌入式的linux开发中,要建立的项目通常是三种,一是C或C++的工程。二是QT/E的工程,三是内核驱动模块工程。管理三种工程,网上流传的方法大多是用autotool或qmake工具生成MAKEFILE,这两种工具使 用极其繁琐,尤其是autotool工具集,还是一“集”,其中,还要手工修改一些文件,其繁琐让人望而却步。而内核模块的MAKEFILE则更是要手工编辑才行了,在实际工作中,用上述进行工程管理,频频出错,严重影响工作效率。而linux的许多发行版中都已集成了kdevelop这个IDE,其可以对工程进行很好的管理,而且它的编辑器又自带有代码缩进,代码补全等功能,十分好用。但是许多嵌入式工程师因为不知如何
  使用kdevelop进行嵌入式开发所需的交叉编译,而放弃了它,实在可惜。我在实际工作中,也先是使用了上述的方法,苦不堪言,而后才模出了在kdevelop3中进行交叉编译的方法,工作效率明显提升。
  我用的是Fedroa6的linux发行版,其自带kdevelop3和QT3的开发环境。下面的讲述都是在这个系统中实际可行的。在其它系统中应该也是这样的。
  我们用来开发ARM嵌入式系统时,常用到三种工程模板,第一种是C的简单的hello模板,C++的简单的hello工程模板。两个模板都是kdevelop调用autotool工具集进行工程管理的。关于这个工具集,网上有很多资料,就不多说了。第二种是QMAKE工程模板,它是调用QT的QMAKE工具来进行工程管理的。第三种,就是linux内核模块工程模板,它由kdevelop自身来管理。下面,我就具体讲述一下如何在这种工程模板中进行交叉编译。
  第一种:kdevelop调用autotool工具集进行工程管理,它要进行交叉编译的设置是最简单的。只需在kdevelop的工程->工程选项的对话框中打开配置选项栏作如下设置,在常规栏中,在“配置参数”中添加一项“--host=arm-linux”,在CPPFLAGS中,加入“-I/usr/local/arm/3.4.1/arm-linux/include”(这是我用的交叉编译器,你要设成你的,以下同),在LDFLAGS栏中,输入“-L/usr/local/arm/3.4.1/arm-linux/lib”,在C栏中,CC中加入“/usr/local/arm/3.4.1/bin/arm-linux-gcc”,在CPP栏中,CXX中加入“/usr/local/arm/3.4.1/bin/arm-linux-g++”。好了,选择构建->构建工程,交叉编译成功。这种模板的设置是最简单的,设置后不用做任何处理,即可编译成功。(这是最简单的,却是我最后才摸出来的,费了很多时间。主要是卡在配置参数中没有加入host=arm-linux,查了很多资料,才解决问题。)第二种:kdevelop是调用QMAKE进行工程管理的。设置到是容易的。就是在工程选项的MAKE选项中,添加四个环境变量。分别是QMAKESPEC,值为“/opt/qt-3.3.4-target/mkspecs/qws/linux-arm-g++”,QTDIR,值为“/opt/qt-3.3.4-target”,QTINC,值为“/opt/qt-3.3.4-target/include”,QTLIB,值为“/opt/qt-3.3.4-target/include”,其中/opt/qt-3.3.4-target,是我的交叉编译的QT/E库所在目录。好了,设置完了,但如果你之前曾经对工程编译过(在开发嵌入式QTE时,这是常有的情况,主要是为了测试一下界面的正确性),你这时再构建工程,就会报错,你要选择清理工程,还要删除工程所在目录下所有的makefile文件,然后再构建工程就会成功。
  第三种:kdevelop是自身在管理此工程的。没有什么可以设置的地方,要想它交叉编译,只有直接修改makefile文件了。打开makefile文件,将其中的KDIR = /lib/modules/$(CURRENT)/build更改为KDIR =/root/utu-linux_V1.5.3 (这是我的内核树所在目录。也就是交叉编译在开发板上使用的linux的那个目录),保存。好了,选择“构建工程”,交叉编译成功。如果报错,则先选择“清理工程”即可。签于kdevelop管理此项工程时不是很理想,比如,无法进行多文件的驱动编译。建议用网上提供的makefile模板修改后直接替换原来的makefile。考试,大提示把模板附在下面。
  ifeq ($(KERNELRELEASE),)
  KERNELDIR ?= /root/utu-linux_V1.5.3
  PWD := $(shell pwd)
  modules:
  $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
  modules_install:
  $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
  clean:
  rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
  PHONY: modules modules_install clean
  else
  obj-m := xray.o
  xray-objs :=xray-driver.o hwdriver.o
  endif
  好了,到此,你基本就可以完全在kdevelop下进行嵌入式的开发和交叉编译了,怎么样,是不是觉得工作 效率大大提高了呢。

C++技巧:用kdevelop进行交叉编译的方法相关推荐

  1. 数学猜想验证步骤_高中数学解题思路与技巧汇总,19种解题方法,实用!

    解数学题,除了掌握有关的数学知识之外,最好掌握一定的解题技巧甚至知道点解题思想.要知道高考试题的解答过程中蕴含着重要的数学思想方法,如果能有意识地在解题过程中加以运用,势必会取得很好的效用.下面邦德华 ...

  2. win7设置计算机临时用户,Win7小技巧:用户账户自动登录方法汇总

    Win7之家( www.win7china.com):Win7小技巧:用户账户自动登录方法汇总 为了计算机安全,相信使用Windows7系统的朋友大多都为自己的用户账户设置了或简单或复杂的密码,其实对 ...

  3. 网上看到的星际制图技巧,有些反作弊的方法还是可以借鉴的

    网上看到的星际制图技巧,有些反作弊的方法还是可以借鉴的 http://tieba.baidu.com/p/984576171?see_lz=1&pn=1 转载于:https://www.cnb ...

  4. phpcms comment_list.tpl.php怎样生成,CMS技巧:phpcms v9 邮件群发实现方法

    <CMS技巧:phpcms v9 邮件群发实现方法>要点: 本文介绍了CMS技巧:phpcms v9 邮件群发实现方法,希望对您有用.如果有疑问,可以联系我们. 导读:自己的网站维易PHP ...

  5. PDF文件编辑技巧之PDF文件去除水印方法

    PDF文件相信大家都会使用到,有时候我们不止局限于使用PDF文件还需要编辑PDF文件的时候,那么PDF文件的编辑技巧有什么呢.总所周知PDF文件的编辑是需要PDF编辑器的,编辑器的使用技巧有什么呢,好 ...

  6. 外贸邮件群发的技巧:外贸客户邮箱搜集方法大全

    利用电子邮件群发寻找客户是做外贸的朋友很熟悉的方法.但是百分之80的外贸人并没有真正的掌握.很多做外贸的朋友感到茫然:要精准地找到有效客户邮箱地址非常困难,尤其是对于一些外贸新人而言,简直是无从下手. ...

  7. mac技巧|快速电脑锁屏/睡眠方法

    此篇文章献给新手小白,现在更多的小伙伴青睐于mac电脑,但是想要用起来更顺手还有需要一个适应的过程,小编今天的文章帮您先解决快速锁屏.睡眠操作问题,需要的来一起看看吧~ mac技巧|快速电脑锁屏/睡眠 ...

  8. 小技巧--table表格td内容垂直居中方法

    小技巧–table表格td内容垂直居中方法 前端页面编写时,table表格排版时最容易遇到的,就是单元格内的内容无法居中,又不能写行高时,可以使用以下方法: table td {vertical-al ...

  9. tableau linux无网络安装_举个栗子!Tableau 技巧(110)两种方法实现正态分布 Normal distribution...

    关于正态分布 正态分布(Normal distribution),也称"常态分布",又名高斯分布(Gaussian distribution).正态分布是统计学中一个重要的概率分布 ...

最新文章

  1. vue中axios如何实现token验证
  2. PCA和白化练习之处理二维数据
  3. cocos2d-x3.0rc打包apk遇到的一些问题记录
  4. 国家“十三五”重点出版规划获批
  5. WEB攻击手段及防御第3篇-CSRF
  6. oracle常用的监控,oracle常用性能监控及优化语句
  7. Django——WEB三层架构与MVC
  8. 外虚内实是什么意思_取名|为什么00后那么多梓涵?
  9. 织梦dedecms系统调用跨站跨数据库数据显示
  10. 【Science】颠覆三观的超强聚类算法
  11. ARP (地址解析协议)
  12. Java 安全套接字编程以及keytool 使用最佳实践
  13. APP安全——抓包代理工具的设置
  14. 单片机定时器一1ms12MHz_51单片机CPU结构各部件的原理详细分析
  15. 冰桶挑战 慈善并文艺着
  16. 普通人卖什么才能赚到人生的第一桶金?
  17. 计算机应用项目中 属于科学计算应用领域,下列计算机应用项目中,属于科学计算应用领域的是(    )...
  18. 安卓手机与Linux同步后,搜索文件内的内容
  19. final修饰的变量
  20. 轻社区的“赚钱术”:免费社区赚钱,去年利润1个亿

热门文章

  1. java泊松分布_Java中利用Math.random()产生服从泊松分布的随机数
  2. multisim中轻触开关在哪_关于轻触开关的原理、区别、寿命以及接线方式的介绍...
  3. python地址多少位_Python获取IP地址对应的地理位置信息!
  4. js 取小数整数部分
  5. 加密芯片提升消费电子产品设备的安全性能
  6. WORD批量更改所有图片大小
  7. VB获得磁盘的文件系统
  8. GitHub标星7700:Python从新手到大师,只要100天
  9. [译]Object的局限性——Kotlin中的带参单例模式
  10. 【DP】【单调队列】【NOI2005】瑰丽华尔兹