【发布时间】:2020-03-08 18:21:20
【问题描述】:
我有一个大型 C 项目,我想使用我的 include/ 路径中的包含以及我的 RTOS 的其他一些包含,从 src/ 文件中的所有源生成一个静态库。
我在行命令中有一组工作步骤:
gcc src/drivers/* src/packets/* (...more files) -c -I ./include -I ../SatelliteSim/Source/include/ -I ../SatelliteSim/Project/ -I ../SatelliteSim/Source/portable/GCC/POSIX/ -m32 -DDEBUG=1 -g -UUSE_STDIO -D__GCC_POSIX__=1 -pthread
那么,ar -rsc telecommands.a *.o
我目前对 Makefile 的尝试如下所示:
CXXFLAGS := -I./include -I../SatelliteSim/Source/include/ -I../SatelliteSim/Project/ -I../SatelliteSim/Source/portable/GCC/POSIX/ -m32 -DDEBUG=1 -g -UUSE_STDIO -D__GCC_POSIX__=1 -pthread
MODULES := commands/commands \
driver_toolkit/driver_toolkit \
(... more 'modules')
SOURCES := src/$(MODULES).c
OBJS := bin/$(MODULES).o
all: telecommands.a
telecommands.a: $(OBJS)
ar -rsc $@ $^
$(OBJS): $(SOURCES)
$(CXX) $(CXXFLAGS) -c $^ -o $@
但是我在编译步骤中遇到了我的包含文件的问题。
希望有人能指出我做错了什么:)
提前致谢!
【问题讨论】:
标签: c makefile compilation include archive