永发信息网

makefile中CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)什么意思

答案:2  悬赏:80  手机版
解决时间 2021-03-04 21:10
  • 提问者网友:心如荒岛囚我终老
  • 2021-03-03 21:14
在linux2.6.39内核中,Makefile中196行处 CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
这句什么意思,主要就是这两个%号没看懂
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-03-03 22:11
:"%"=%
是一种字符串处理的模式匹配方式, 作用是取CONFIG_CROSS_COMPILE 定义中有"" 括起来的数据值,如

CONFIG_CROSS_COMPILE="arm-none-linux-gnueabi-"
则取出来的值即为arm-none-linux-gnueabi-,就是交叉编译器前缀。
CONFIG_CROSS_COMPILE,通常由make menuconfig 配置时设定,保存如 arm 配置保存在arch/arm/xxx_defconfig中
全部回答
  • 1楼网友:往事埋风中
  • 2021-03-03 22:22
定义要使用的编译器,非交叉编译的场合,cross_compile为空,所以使用的就是gcc,交叉编译时(如在x86 pc上编译在arm上运行的软件),cross_compile会定义为类似于arm_linux_gnu_的值,这时会使用交叉编译器(如arm_linux_gnu_gcc)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯