RT-Thread增加一个GUI组件编译不过,求帮助
https://github.com/bomingfeng/RT-Thread_nk-980iot/tree/master/rt-thread/components/GUI
You can make emwin library first and select library to link.
There are a Makefile and SConscript example.
You can execute ‘make’ command using env to build your library.
For example.
TARGET ?= libstddriver_gcc
#################################
# GNU ARM Embedded Toolchain
#################################
CC=arm-none-eabi-gcc
CXX=arm-none-eabi-g++
LD=arm-none-eabi-ld
AR=arm-none-eabi-ar
AS=arm-none-eabi-as
CP=arm-none-eabi-objcopy
OD=arm-none-eabi-objdump
NM=arm-none-eabi-nm
SIZE=arm-none-eabi-size
A2L=arm-none-eabi-addr2line
#################################
# Working directories
#################################
STDDRIVER_DIR = ../
ROOT = ../Library
OBJECT_DIR = $(ROOT)/build/gcc
BIN_DIR = $(ROOT)/build/gcc
#################################
# Source Files
#################################
# Search path and source files
CSOURCES = $(notdir $(wildcard $(STDDRIVER_DIR)/Source/*.c))
INCLUDE_DIRS = -I$(ROOT)
INCLUDE_DIRS += -I$(STDDRIVER_DIR)/Include
INCLUDE_DIRS += -I$(DEVICE_DIR)
#################################
# Object List
#################################
OBJECTS=
#################################
# Target Output Files
#################################
TARGET_A=$(TARGET).a
#################################
# Flags
#################################
MCFLAGS= -mcpu=arm926ej-s
OPTIMIZE = -O0 -gdwarf-2
DEFS=
CFLAGS=-c $(MCFLAGS) $(DEFS) $(OPTIMIZE) $(addprefix -I,$(INCLUDE_DIRS)) -std=c99
CXXFLAGS=-c $(MCFLAGS) $(DEFS) $(OPTIMIZE) $(addprefix -I,$(INCLUDE_DIRS)) -std=c++11
LDSCRIPT=
LDFLAGS =
#################################
# Build
#################################
all: clean $(TARGET_A)
$(TARGET_A):
@echo -n "Build $@ ..."
@cd $(STDDRIVER_DIR)/Source && \
$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(CSOURCES)
$(AR) cr -o $@ \
$(STDDRIVER_DIR)/Source/*.o
$(SIZE) $(TARGET_A)
#################################
# Recipes
#################################
.PHONY: all clean
clean:
rm -f $(STDDRIVER_DIR)/Source/*.o $(TARGET_A)
SConscript
# RT-Thread building script for component
Import('rtconfig')
from building import *
cwd = GetCurrentDir()
libs = []
src = Glob('Source/*.c') + Glob('Source/*.cpp')
cpppath = [cwd + '/Include']
libpath = [cwd + '/Library']
if not GetDepend('BSP_USE_STDDRIVER_SOURCE'):
if rtconfig.CROSS_TOOL == 'keil':
if GetOption('target') == 'mdk4' and os.path.isfile('./Library/libstddriver_keil4.lib'):
libs += ['libstddriver_keil4']
if GetOption('target') == 'mdk5' and os.path.isfile('./Library/libstddriver_keil.lib'):
libs += ['libstddriver_keil']
elif rtconfig.CROSS_TOOL == 'gcc' and os.path.isfile('./Library/libstddriver_gcc.a'):
libs += ['libstddriver_gcc']
if not libs:
group = DefineGroup('Libraries', src, depend = [''], CPPPATH = cpppath)
else:
src = []
group = DefineGroup('Libraries', src, depend = [''], CPPPATH = cpppath, LIBS = libs, LIBPATH = libpath)
Return('group')
这部分是你自己添加的?
@出出啊 是的。上次在GITHUB下载了。我找找原链接。
自己加的最后就是编译不过。
@boming 上面那个链接也没有 rt-thread/components/GUI 这个目录
GIT不怎么会用,有的下级文件夹传不上,现在更新了。可以了。
@boming 我试了一下你这个,前边编译每一个文件都没问题,最后链接目标文件的时候出错了。可能是命令行字符数太多了。
按照楼下的先把 emwin 编译成库吧。你竟然搞到了5.x版本的源码。