xscale linux内核编译,【记录】用交叉编译器arm-xscale-linux-gnueabi交叉编译一个基于嵌入式Linux的无线HART的项目...
【背景】
手上有一个无线HART的源码,其是基于Eclipse的项目。
想要交叉编译该项目。
之前已经通过crosstool-ng弄出一个交叉编译器arm-xscale-linux-gnueabi了:
又交叉编译了,该项目所依赖的四个库:
此时,可以接着,基于Eclipse,去编译此项目了。
【折腾过程】
1.先要去修改原先的makefile。因为其中的很多路径,是之前别人的路径,此处要改为自己当前的路径。
2.突然发现,此处的Eclipse中该项目的makefile,中的很多路径,都是类似于:
/home/xxx/usr/local/armxscalecurl/bin
的路径,说明了:
此项目,是基于Linux平台下,Eclipse的项目。
所以,可以直接使用此种路径。
而当前我此处是:
win x64,在cygwin下弄出来的交叉编译器
所以,意味着:
无论是使用cygwin下的/cygdrive/xxx的路径 -> Win7下的Eclipse不支持
直接使用win7的路径,E:/xxx->Eclipse中的makefile,估计很多都无法运行,包括路径中,可能包括空格,以及此时调用的Makefile,是不是linux/cygwin下兼容的makefile
所以,目前看来,只能是去:
把代码拿到cygwin下,尝试在cygwin下面编译,或许最终可以编译成功。
3.把代码拷贝到cygwin下。
4.修改路径的时候,结果却发现,此项目还需要一个库libcgi,所以,再去继续交叉编译这个libcgi:
5.然后继续折腾。
改好了路径后,直接去make:
6.结果出错了:
按照同样的改法,以此把余下的,同样的错误,都改掉。
7.最后,就对于WBM,编译完成了,生成了arm的可执行文件:CLi@PC-CLI-1 ~/develop/wihart_gateway_6_0/WBM/Build
$ file xxx.exec
xxx.exec: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.19, not stripped
8.编译完成了WBM后,再去编译WHGS。
对应的,修改好路径后,去make编译。
9.结果出错:fatal error: log4c.h: No such file or directory
发现是原先的makefile中,没有添加log4c的include路径,所以去添加上:-I $(LOG4CROOTDIR)/include
然后再去make
10.然后解决了一堆,和之前一样的
error: lvalue required as unary ‘&’ operand
的问题后,一直编译到最后,结果是ld找不到我们此处的一些库:/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/lib/gcc/arm-xscale-linux-gnueabi/4.6.0/../../../../arm-xscale-linux-gnueabi/bin/ld: cannot find -lxmlrpc_client
/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/lib/gcc/arm-xscale-linux-gnueabi/4.6.0/../../../../arm-xscale-linux-gnueabi/bin/ld: cannot find -lxmlrpc
/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/lib/gcc/arm-xscale-linux-gnueabi/4.6.0/../../../../arm-xscale-linux-gnueabi/bin/ld: cannot find -lxmlrpc_util
/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/lib/gcc/arm-xscale-linux-gnueabi/4.6.0/../../../../arm-xscale-linux-gnueabi/bin/ld: cannot find -lxmlrpc_xmlparse
/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/lib/gcc/arm-xscale-linux-gnueabi/4.6.0/../../../../arm-xscale-linux-gnueabi/bin/ld: cannot find -lxmlrpc_xmltok
所以,看来需要去添加lib的路径。
结果发现是自己把XMLRPCROOTDIR误写为了LIBXMLROOTDIR,所以导致路径设置有误,没有找到上述的xmlrpc的库。
11.改了后,再去编译,结果可以找到xmlrpc库,但是又出现其他错误:
然后就编译完成了。
12.去看看最后生成的文件:CLi@PC-CLI-1 ~/develop/wihart_gateway_6_0/WHGS/Build
$ file xxxMainApp
xxxMainApp: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.19, not stripped
的确是可以正常的生成了arm的app了。
【总结】
至此,看来是,可以通过交叉编译器arm-xscale-linux-gnueabi,去编译当前的项目了。
xscale linux内核编译,【记录】用交叉编译器arm-xscale-linux-gnueabi交叉编译一个基于嵌入式Linux的无线HART的项目...相关推荐
- xscale linux内核编译,Building arm-linux toolchain for ARM/XSCALE
4. Bootstrap compiler gcc Setup (1) kernel和库头文件 mkdir ${PRJROOT}/kernel make ARCH=arm menuconfig (选择 ...
- 杭电操作系统实验一 --- Linux内核编译及添加系统调用(arm架构华为云)
实验要求 掌握Linux 内核的编译与安装 掌握Linux 系统调用基本概念 设计和添加linux系统调用 (1)修改或返回指定进程的优先级(nice值和prio值)(详见教材P328)提示:可能参 ...
- 树莓派-linux内核编译
树莓派-linux内核编译 装虚拟机[^1] 配置共享文件夹 配置交叉编译工具 下载树莓派linux系统内核[^3] 树莓派等芯片带操作系统的启动过程 树莓派linux源码目录树 树莓派linux源码 ...
- linux内核编译如何选择cpu类型,Ubuntu内核编译和CPU Hot-Plug特性配置全过程及遇到问题记录...
最近编译Palacios需要linux的内核支持cpu Hot-Plug(内存热插拔)特性,无奈我机器上安装的Ubuntu10.04系统默认不支持内存热插拔特性,所以需要修改配置文件并重新编译linu ...
- LINUX内核编译(ZT)
LINUX内核编译(ZT) 在这里转贴一些关于内核编译的文章,绝非笔者原创,也无意注明出处.有些内容有重复之处,请原谅. ==================================== 一. ...
- 编译linux内核的错误,linux内核编译错误
原标题:linux内核编译错误 内核版本:2.6.14 交叉编译器: -linux-gcc 4.3.3 错误: arch/arm/mm/alignment.c: In function 'proc_a ...
- 最小的linux内核编译,Linux最小内核移植
class="markdown_views prism-github-gist"> Linux内核编译 本篇博客来自凌云实验室开发板介绍及其烧录学习笔记 1.内核介绍 一种开 ...
- Android Linux内核编译调试
对于在Windows上写代码写习惯的人,调试是必不可少的手段,但是转到Android以后,发现调试手段异常简陋,跟Windows简直不是一个级别,特别是Android的内核调试,网上资料也相对较少,不 ...
- Linux内核编译基础
2.6 Linux内核编译基础 当完成对Linux内核的配置以后,此时仍然以源代码的方式存在,不能直接下载到嵌入式系统中运行,因此,需要对内核进行编译,生成最终可以在嵌入式系统上运行的可执行代码. ...
最新文章
- windows 正在查找bash.exe
- Cisco 交换机配置端口镜像
- Fabric--启动网络手动
- python抓取数据库_Python-7.爬取大量数据存入数据库
- 不可错过!华为终端云服务带来Mate 20系列专属礼包
- mysql 命令查看帮助_Mysql使用命令分级查找帮助
- C51 printf修改如何能打印到不同的设备呢?
- Linux用户配置文件(第二版)
- html实现多窗口同时显示,如何使webstorm同时显示多个窗口?
- 普惠科技助力智能升级 天猫精灵新品直指家庭IoT生态
- Rockwell AB PLC 控制器EDS 更新下载更新方法
- 异速联服务器配置系统管理员,异速联V6.2.4.0正式版全新发布
- 几本适合嵌入式软件工程师阅读的电子入门书
- JS实现项目查找功能
- 阿里用回mysql_回mysql事务
- Codeforces 934C - A Twisty Movement (dp)
- UltraVNC(TightVNC、WinVNC)源码分析文档
- 《武则天正传》读后感
- java中如何实现多语言切换
- 如果一个女人喜欢你,又不跟你在一起,而且只跟你很暧昧,那代表什么
热门文章
- 如何清晰地思考:近一年来业余阅读的关于思维方面的知识结构整理(附大幅思维导图)
- Linux SSH密码暴力破解技术及攻防实战
- 马斯克回应特斯拉上海工厂克扣员工绩效奖;苹果版余额宝上线,年利率4.15%;Fedora 38 发布|极客头条
- Ubuntu下Pycharm切换中文输入法无法输入中文解决方法
- 数据中心低压配电系统能耗分析与PUE计算
- 完整体验了一次,微信7.0新开放的「亲属卡」功能
- 前端js实现路由切换页面 pushState replaceState
- Java复习总结之解析类的初始化顺序
- 用Python复制文件的9个方法(转)
- Excel中取值函数