gpt4 book ai didi

cmake 转换为目标文件

转载 作者:行者123 更新时间:2023-11-30 14:50:04 25 4
gpt4 key购买 nike

我有一个 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) $^

最佳答案

您可以使用add_library with OBJECT signature :

add_library(yourlib OBJECT sources)

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

add_executable(yourexe $<TARGET_OBJECTS:yourlib>)

关于cmake 转换为目标文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49216912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com