我正在为Cortex-M4处理器开发项目,我的编译器标志包括:
-mlittle-endian -mthumb -mcpu=cortex-m4
以下摘自make
数据库(make -p | grep -E '^(LINK|COMPILE)\.[cosS]\ ' | sort)
):
COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.s = $(AS) $(ASFLAGS) $(TARGET_MACH)
LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
LINK.o = $(CC) $(LDFLAGS) $(TARGET_ARCH)
LINK.s = $(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH)
我看到使用汇编程序来源 TARGET_MACH ,并且使用了c-sources TARGET_ARCH ,但有什么区别以及如何正确指定这些变量?
答案 0 :(得分:1)
发现这一点:http://zoo.cs.yale.edu/classes/cs210/help/make.html表示TARGET_ARCH
和TARGET_MACH
是目标系统arch
和mach
的输出。如果您搜索上述实用程序,您会发现在现代系统上它们对应于uname -m
和uname -p
的输出。对于我的桌面,他们会相应地给我x86_64
和i386
。