cmake转换为目标文件
cmake convert to object file
我有一个用于 ARM 目标的 Keil 项目,我将其转换为用于命令行构建系统的 Makefile。我也在考虑使用 cmake,但我找不到正确的 command/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) $^
您可以使用 add_library
with OBJECT
signature:
add_library(yourlib OBJECT sources)
然后link将它们变成可执行文件,例如:
add_executable(yourexe $<TARGET_OBJECTS:yourlib>)
我有一个用于 ARM 目标的 Keil 项目,我将其转换为用于命令行构建系统的 Makefile。我也在考虑使用 cmake,但我找不到正确的 command/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) $^
您可以使用 add_library
with OBJECT
signature:
add_library(yourlib OBJECT sources)
然后link将它们变成可执行文件,例如:
add_executable(yourexe $<TARGET_OBJECTS:yourlib>)