Crosstool-NG制作GNU工具链
admin
2024-02-12 09:39:36
0

在说正事之前先讲下automake autoconf这一套东西。

目前在网上找到的开源工具之类的项目,绝大多数都可能在编译之前执行./configure

这个脚本后面可能会带各种各样的参数。如果就是针对本机进行编译还好,如果是进行交叉编译,可能还需要带各种各样的参数,提前设好各种路径的环境变量。

常见的例如:
--host=交叉gcc的前缀(就是host 工具链的名字)
--with-sysroot=目标文件系统根目录路径或者GCC 工具链里面提供的头文件和libc等库的路径。
--prefix 安装路径。
环境变量LIBS PKG_CONFIG_PATH 等。
需要引用交叉编译工具链,实现环境和编译上位机的隔离。防止在编译arm的应用时引用到x86linux 的库和环境 头文件。这样容易出现各种各样的编译错误。

需要注意的是,configure和Make file都是各个库和工具 的作者自己写的,有一定的规范习惯但是并没有标准,所以每个都不一样!!!

具体需要仔细查看help内容。

在./configure的时候,会检查当前的环境并生成MAKEFILE。如果是纯纯的应用交叉编译可能还好,如果是和target系统内核之类的相关的工具编译,那可能会太麻烦了。

在遇到问题的时候,需要检查config.log及生成的Makefile及编译过程中的log。

如果编译能够成功,并且可以运行。GOOD LUCK!


如果想尝试在板子里编译,但是板子里没有编译环境。
(这条路我最终也放弃了,因为板子里的环境实在是太乱,哪怕我有了C库 头文件和GCC,但是还是会缺少各种其他的库)。

可以使用Crosstool-ng制作编译工具。

值得注意的点

  1. ct-ng 是基于make的工具 ct-ng -h实际上是用了make -h 。所以要看真正的help 需要 ct-ng help
  2. 跟上面这个一样 在编译linux 源码的时候。看makefile 的help. 是make help
  3. 在menuconfig中配置工程路径,有tar source, build 路径, prefix三种要配置。分别对应工具拉取要编译的源码,编译过程中产生的文件,安装工具链的路径。
  4. 上面那个build路径不能命名为build, 否则ct-ng build会告诉你 build is up to date。他会以为你是去执行文件夹下编译而不是编译Makefile中的build
  5. Crosstool-NG网站的文档中有Toolchain Types这一节,讲了build target host 的关系。生成ARM->ARM这种编译器属于是cross-native类型,属于是加拿大类型的特例。加拿大类型是指build target host都不相同。
  6. 加拿大型制作工具链的策略是,先生成当前环境下的交叉工具链,再用交叉工具链生成host下编target的工具链。make之类的所谓伙伴工具也会编译出来,可以在menuconfig里勾选。
  7. 在实际操作中,发现如果有类似linaro的x86->arm交叉编译工具,似乎不在需要第一次编译交叉工具了,在加拿大型勾选后产生的HOST工具配置项中HOST名字那里填写交叉工具链的host名,(三个填空里的第一个,help里面会说 usually你会不会空着)。例如aarch64-none-linux-gnu。实际上就是gcc的前缀。
  8. 在Crosstool-NG里面他去获取源码包的路径是固定的,可能人家的源已经失效了(在糟糕的网络环境下经常发生).可以器github之类的上面看issue,可能有好心人给了tar的下载地址。然后可以手动下载到前面设置好的路径下。程序执行ct-ng source 或者ct-ng build就可以了。

相关内容

热门资讯

从“舌尖”到“脚尖”,漯河为何... 一碗烟火,撬动一城繁华。 在文旅新消费浪潮中,“为一顿饭奔赴一座城”正从网络热梗变为现实图景。 据中...
又一民族品牌落幕,大窑汽水被美... 又一家有着30年历史的民族饮料品牌落幕,由吴京代言的大窑汽水卖身美国私募巨头。 近日,有媒体爆出,美...
萝卜糕的 Q 弹密码:粘米粉与... 广式茶楼里的萝卜糕,总能在筷子夹起时展现恰到好处的韧性 —— 既不会软塌塌不成形,也不会硬邦邦缺乏口...
宣医科普|三伏养生进行时:无诱... -- 宣医科普 -- 三伏养生进行时 无诱因心梗为哪般? BRTV《养生堂》特别节目 出场专家 刘 ...
靠馒头机流水线做千层戗面馒头,... 对于戗面馒头,很多老铁可能听过但未必真的了解,甚至还有老铁把“戗面”写成“墙面”,今天就好好跟大家掰...
原创 晚... 晚饭不知道吃啥?来个凉拌魔芋吧,酸辣过瘾还不发胖,今天就教你这道酸辣拌魔芋,好吃又健康,做法还贼简单...
齐云山之约 齐云山之约 黄山之... 提及徽州,总想起汤显祖“一生痴绝处,无梦到徽州”的咏叹。周末,我和爱人带着孩子踏上齐云山,赴齐云山之...
出行误了火车飞机?注意这些情况... 暑运期间,一些旅客匆忙中误了火车和飞机的事时有发生。那么旅客一旦误了火车、误了飞机该怎么办呢? 误了...
伊瓜苏亲子游:探秘雨林明星动物 如果孩子的暑假梦想是一场冒险旅行,那么巴西伊瓜苏(Foz do Iguaçu)一定会让他们眼睛发亮!...
美好生活在云南| 飞“阅”力角... 当无人机掠过滇西北的苍穹,大理州宾川县力角镇的夏日画卷在云端徐徐展开——从晨雾未散的山巅到车流轰鸣的...
山水度假新模式 鸾州渡假日小镇... 7月25日,伏牛山脉南麓的栾川夜色中,354亩山水画卷间华灯初上。随着“幻夜鸾州渡 文化栾川游”仪式...
148万中国游客在这里寻找什么... 【文/观察者网 王勇 编辑/赵乾坤】 据新加坡《海峡时报》《商业时报》等媒体日前报道,2025年第...
泡泡大战、帐篷市集...未来科... 炎炎夏日,蝉鸣渐起 暑假如约而至 未来科学城未来中心星际花园 “星际畅想 欢乐一夏”已拉开帷幕 ...
甘肃旅游玩5天4晚具体攻略分享... 家人们,如果你还在为假期去哪儿玩而烦恼,那不妨把目光投向甘肃的甘南吧!甘南,全称甘南藏族自治州,宛如...
AApoker透视辅助(德扑之... AApoker透视辅助(德扑之星软件透明软件)其实真的有挂(透明挂)详细辅助器安装教程-哔哩哔哩1、...
德扑之星透明挂(wepoke辅... 德扑之星透明挂(wepoke辅助是真的)其实真的有挂(辅助透视)详细辅助机制教程-哔哩哔哩1、每一步...
WePoKe透视辅助(aapo... WePoKe透视辅助(aapoker是什么软件)其实真的有挂(辅助透视)详细辅助软件教程-哔哩哔哩是...
微扑克透明挂(德扑之星窥牌)其... 微扑克透明挂(德扑之星窥牌)其实真的有挂(辅助挂)详细辅助挂教程-哔哩哔哩暗藏猫腻,小编详细说明德扑...
德扑之星透视(微扑克伙牌技巧)... 德扑之星透视(微扑克伙牌技巧)原来真的有挂(辅助挂)详细辅助挂教程-哔哩哔哩;1分钟了解详细教程(微...