前些天移植完uCLinux后想自己写LCD应用并编译到uCLinuxromfs中在网络中搜索了半天愣是没找到篇相关介绍而关于Makefile编写资料倒是很多看了好长时间也没什么用处最好经摸索思考终于成功特写出方法供大家参考
2vHfbaiducukrE7 注意:OS_HOME为您uCLinux/Linux源代码根目录
、 编写自己源代码:
uCLinux/Linux应用通常存放在OS_HOME/user目录下我们在该目录下创建个Hello目录并创建Hello.c文件输入以下代码该即大家最常见Hello world!
Hello world应用
参考:[http://www.crazycoder.cn/]Hello.c
2vHfbaiducukrE7# <stdio.h>
2vHfbaiducukrE7# <stdlib.h>
2vHfbaiducukrE7void
2vHfbaiducukrE7{
2vHfbaiducukrE7 prf(“Hello world!”);
2vHfbaiducukrE7}
--------------------------------------------------------------------------------------------
二、为Hello world编写Makefile文件该文件存放在OS_HOME\user\hello\下
Makefile
--------------------------------------------------------------------------------------------
#########################################################
# uclinux project type.
#########################################################
EXEC = Hello
OBJS = Hello.o
CFLAGS -I.
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
romfs:
$(ROMFSINST) /bin/$(EXEC)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
-------------------------------------------------------------------------------------------
上面代码我就不解释了大家参考相关文件注意Hello为可执行文件名Hello.o为目标文件名大家可以根据自己工程来修改
三、修改uCLinux/Linux相关配置文件
这里需要修改文件有:OS_HOME/user/MakefileOS_HOME/config/config.in两个文件下面分别针对uCLinux和Linux讲解
1. uCLinux中修改OS_HOME/user/Makefile文件
打开OS_HOME/user/Makefile:
--------------------------------------------------------------------------------------------
#
# Makefile -- Build instructions for user level apps
#
.EXPORT_ALL_VARIABLES:
#
# Include architecture specic build rules.
#
ndef ROOTDIR
ROOTDIR=..
end
UCLINUX_BUILD_USER=1
$(LINUX_CONFIG)
$(CONFIG_CONFIG)
$(ARCH_CONFIG)
- $(MODULES_CONFIG)
VEND=$(ROOTDIR)/vendors
#
# must run the vendor build first
#
dir_y = $(VEND)/$(CONFIG_VENDOR)/$(CONFIG_PRODUCT)/.
dir_n =
dir_ =
dir_$(CONFIG_JFFS_FS) mtd-utils
dir_$(CONFIG_JFFS2_FS) mtd-utils
……(中间略去)
dir_$(CONFIG_USER_WLG3) wlg3
dir_$(CONFIG_USER_TEST111) test111
dir_$(CONFIG_USER_HELLO) Hello
dir_y
all:
for i in $(dir_y) ; do make -C $$i || exit $? ; done
romfs:
for i in $(dir_y) ; do make -C $$i romfs || exit $? ; done
clean:
-for i in $(dir_y) $(dir_n) $(dir_) ; do \
[ ! -d $$i ] || make -C $$i clean; \
Done
添加代码上面代码中灰底蓝字部分该行代码中CONFIG_USER_HELLO定义个符号在其他文件中用到 Hello为应用相对路径
2. uCLinux中修改OS_HOME/config/config.in
打开OS_HOME/config/config.in文件
--------------------------------------------------------------------------------------------
2vHfbaiducukrE7##################################################################
#
# NOTE : it is fairly important that changes to this file consider their
# effect _disibledevent="23%"> (全文结束)
最新评论