RK3568-buildroot添加用户应用程序(以alsa_capture为例)
1 在/buildroot/external/alsa_capture/src/目录下
编写alsa_capture.c文件
#include
#include
int main(int argc, char *argv[])
{
printf("hello world\r\n");
return 0;
}
编写Makefile文件
Target = alsa_capture
CPP = aarch64-linux-gcc
LIBS =
all: $(Target)
$(Target):alsa_capture.c
$(CPP) alsa_capture.c -o $(Target) $(LIBS)
@echo "generate $(Target) success!!!"
.PHONY:clean cleanall
clean:
@rm -f $(Target)
cleanall:clean
@echo -e '\e[1;33m -rm -f $(INSTATLL_PATH)/$(Target) \e[0m'
distclean:cleanall
install:
@echo -e '\e[1;33m install -m 0755 $(Target) $(INSTATLL_PATH)/$(Target) \e[0m'
2 在/buildroot/package/rockchip/alsa_capture/目录下
编写Config.in文件
config BR2_PACKAGE_ALSA_CAPTURE
bool "Simple ALSA Capture Demo"
编写alsa_capture.mk文件
#############################################################
#
# alsa_capture
#
#############################################################
ALSA_CAPTURE_VERSION = 1.0
ALSA_CAPTURE_SITE = $(TOPDIR)/external/alsa_capture/src
ALSA_CAPTURE_SITE_METHOD = local
#ALSA_CAPTURE_LICENSE = Apache V2.0
#ALSA_CAPTURE_LICENSE_FILES = NOTICE
define ALSA_CAPTURE_BUILD_CMDS
cd $(@D);$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define ALSA_CAPTURE_INSTALL_TARGET_CMDS
find $(@D) -name "alsa_capture" -type f -executable -print -exec cp -vf {} $(TARGET_DIR)/usr/bin/ \;
endef
$(eval $(generic-package))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
3 在/buildroot/package/rockchip/Config.in文件下
添加source "package/rockchip/alsa_capture/Config.in"
4 在/buildroot/configs/OK3568_defconfig文件下
添加BR2_PACKAGE_ALSA_CAPTURE=y
5 在/buildroot/output/OK3568/build/alsa_capture-1.0文件夹下查看是否生成可执行文件
alsa_capture.c:源文件
Makefile:源文件
alsa_capture-1.0.tar:可执行文件压缩包
alsa_capture:可执行文件
6 在/buildroot/output/OK3568/target/usr/bin文件夹下查看拷贝的可执行文件
alsa_capture.mk文件指定了可执行程序安装路径到/usr/bin目录下。