有时,我们只是想在Apollo下面测试简单的程序,不想为之建立makefile,也不想依赖于工程里面的目录。就好像,在pc环境下调用gcc,下面是方法:
一: 应用程序
$export PATH=$PATH:/home/qianjiang/apollo/sw/STB-DI/reference_design/Huangpu/Edwards-SDK/SRC/open_source_archive/linux/toolchains/gnu_cortex-a9_tools/usr/bin
$export _TMSYSROOT=/home/qianjiang/apollo/sw/STB-DI/reference_design/Huangpu/Edwards-SDK/SRC/open_source_archive/linux/toolchains/gnu_cortex-a9_tools
$arm-linux-uclibcgnueabi-gcc --sysroot=${_TMSYSROOT} -o p_w_picpath_update p_w_picpath_update.c
如果要包含内核头文件
-I/home/qianjiang/apollo/sw/ga300/target/src/sd/os/oslinux/comps/kernel/linux-2.6.28.10/include/
在编译开源mtd_debug时,发现__user未定义,需要包含<linux/compiler.h>,实际为#define __user
二:内核模块
在build环境下
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
# KERNELDIR ?=
PWD := $(shell pwd)
default:
$(MAKE) -C $(KSRC) -j2 O=$(KERNEL_OBJ_DIR) M=$(PWD) modules
endif
如果多个文件
test-objs := hello.o splash_logo.o
obj-m += test.o
如果直接加到objs-m后面是生成多个ko文件
转载于:https://blog.51cto.com/jiangjqian/407210