cmake转换为目标文件

时间:2018-03-11 05:20:26

标签: c cmake arm keil

我有一个针对ARM目标的Keil项目,我将其转换为命令行构建系统的Makefile。我也在考虑使用cmake但我找不到正确的命令/ cmakey方式来完成任务。我的Makefile转换了来自不同目录的一大堆源文件,并从中创建了对象文件。然后链接器获取所有这些目标文件以生成可执行文件,其中包含一堆标志和内存映射文件。所以我不能只使用add_executable命令。什么是在cmake中做到这一点的最佳方法?

编辑:

所以这是Makefile尝试做的事情(基本上复制了Keil构建项目的方式)

OBJECT_FILES=out/abc.o out/def.o out/xyz.o

all: binary.hex

binary.hex: binary.axf
           $(ELFTOHEX) $(FLAGS) binary.hex

out/binary.axf: $(OBJECT_FILES)
               ARMLINK $(MANY_FLAGS) $^ -o $@

out/abc.o: ../../../src/modules/abc.c
       ARMCC -o $@ $(FLAGS) $^ 
out/def.o: ../../../src/utilities/def.c
       ARMCC -o $@ $(FLAGS) $^ 
out/xyz.o: src/xyz.c
       ARMCC -o $@ $(FLAGS) $^ 

1 个答案:

答案 0 :(得分:1)

您可以使用add_library with OBJECT signature

add_library(yourlib OBJECT sources)

然后将它们链接到可执行文件中,例如:

add_executable(yourexe $<TARGET_OBJECTS:yourlib>)