以下基于官网上最新的3.04版本(http://www.winnermicro.com/html/1/156/158/497.html)的SDK WM_SDK_W60X_G3.04.00 为例来详细说明。
标准开发包支持KEIL编译和GCC编译两种编译方式,通常来说,开发者使用前者的较多,包括我自己。因为它比较方便,简单,添加自己的C文件时,只需要在项目里右键添加到组即可,再在工程选项里设置一下自己的头文件的目录,就可以进行编译。如下图所示,分别是向工程中添加文件及设置头文件路径的操作步骤。
以下主要介绍一下在使用GCC编译工程时,如何向GCC工程中添加自己的C文件;
SDK根目录结构如下图所示:
现在我在App目录下添加几个文件,并新建一个文件夹,同时在文件夹内存放几个自己写的应用文件,如下图:
若要将以上文件加入GCC工程,可按以下步骤实现:
1,编写dir_demo目录下的makefile,内容如下:
#/**************************************************************************
# * Kevin 2014-02-24 *
# **************************************************************************/
#---------------------------------------------------------------------------
# Constant Variable definition
#---------------------------------------------------------------------------
ifeq ($(COMPILER_OS_CYGWIN),1)
TOPDIR=../../
endif
include $(TOPDIR)/Tools/toolchain.def
#---------------------------------------------------------------------------
# Target definition (User)
#---------------------------------------------------------------------------
GOAL = $(LIB_DIR)/wmdir_demo.$(LIBTYPE)
#---------------------------------------------------------------------------
# Source section (User)
#---------------------------------------------------------------------------
ASM_SRC +=
C_SRC += file_1.c
C_SRC += file_2.c
#---------------------------------------------------------------------------
# Implicit rules
#---------------------------------------------------------------------------
.c.o:
$(CC) $(CFLAGS) -c -o $*.o $< $(INCLUDES)
.s.o:
$(ASM) $(ASMFLAGS) -c -o $*.o $< $(INCLUDES)
#---------------------------------------------------------------------------
# Explicit ruls
#---------------------------------------------------------------------------
OBJ_FILES = $(C_SRC:%.c=%.o) $(ASM_SRC:%.s=%.o)
all: $(GOAL)
$(GOAL): $(OBJ_FILES)
$(AR) $(ARFLAGS) $@ $(OBJ_FILES)
.PHONY: clean
clean:
$(RM) -f $(GOAL)
$(RM) -f $(OBJ_FILES:.o=.d) $(OBJ_FILES)
2,修改Tools/GNU/目录下的makefile,修改内容如下,
3,修改Tools目录下subdir.mk文件;
4,修改Tools目录下toolchain.def文件;
5,完成以上修改后,就修改成功了。然后就可以到GNU目录下执行make命令来编译GCC工程了;