一、buildroot 编译时间长

buildroot 第一次编译时间通常在8到11个小时,因为第一次编译需要download 依赖的包,因为部分资源在国外服务器下载只有几KB的速度;另外应该就与buildroot自身编译方式有关了。

为避免每次编译都重新download依赖文件,可以将编译好的buildroot/dl/下的文件提交至git仓库,下次取代码重新编译就不用再下载了。

二、buildroot修改源码后重新编译不会生效

修改分两种情况:(1)修改mk等不依赖源码的文件 (2)修改有程序源码,最终编译为可行性程序或lib

(1)这种情况似乎make cleanall后编译也不会生效,因为clean并没清楚中间文件,必须删除buildroot/output文件夹后整编

(2)可以删除"buildroot\output\firefly_rk3308_release\build\adbd\.stamp_*" ,然后重新编译即可(以修改adbd程序为例)

三、编译框架

有点类似kernel的架构

总配置文件路径buildroot\configs                --类似kernel\arch\arm64\configs

根据总的配置加载其他目录下配置"buildroot\Config.in"    --类似kernel的Kconfig  可以source其他子目录下的Config.in文件

各个目录下的.mk文件                       --类似kernel下Makefile的作用

 

四、新增一个package

(1)在工程的config文件添加宏定义

例如:configs/firefly_rk3308_release_defconfig  添加BR2_PACKAGE_MIC_ARRAY=y

(2)在buildroot/package路径下(或package/rockchip下)新建mic_array文件夹(必须命名为mic_array,否则不会编译)

文件夹内新建mic_array.mk  和Config.in文件

Config.in文件


config BR2_PACKAGE_MIC_ARRAY
        bool "mic_array"
        default y
        help
                Use cloudwalk's mic_array

mic_array.mk文件(Cmake编译方式)

#####CMAKE BUILD
MIC_ARRAY_SITE = $(TOPDIR)/package/cloudwalk/mic_array/src
MIC_ARRAY_VERSION = release
MIC_ARRAY_SITE_METHOD = local

define MIC_ARRAY_COPY_LIBS
        cp -f  $(@D)/libs/* $(TARGET_DIR)/usr/lib64/
endef

MIC_ARRAY_POST_INSTALL_TARGET_HOOKS += MIC_ARRAY_COPY_LIBS
$(eval $(cmake-package))

也可以是Makefile编译方式(仅供参考)

# MIC_ARRAY_VERSION:=1.0.0

# define MIC_ARRAY_BUILD_CMDS
    # $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
                # package/cloudwalk/mic-array-service/src/*.cpp -o $(@D)/mic_array
# endef

# define MIC_ARRAY_CLEAN_CMDS
    # $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) clean
# endef

# define MIC_ARRAY_INSTALL_TARGET_CMDS
    # $(INSTALL) -D -m 755 $(@D)/io $(TARGET_DIR)/usr/bin/mic_array
# endef

# define MIC_ARRAY_UNINSTALL_TARGET_CMDS
    # $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) uninstall
# endef

# $(eval $(generic-package))

src目录下编写CMakelists.txt或Makefile文件

将新建的Config.in文件添加到上一级目录的Config.in里

然后./build.sh buildroot重新编译

 

Logo

更多推荐