使用定义的目标在 linux 上编译
Compilation on linux with defined target
我想用 Makefile 编译一个项目。
我在我的一个 .h
中为 linux 定义了目标
#define LINUX_TARGET (COMPILER_GCC_4_4_1|FAMILY_LINUX|TYPE_X86)
...
#ifdef _LINUX_TARGET_
#define __linux__
#define TARGET LINUX_TARGET
...
#ifdef __linux__
#define __LINUX__
#endif
所以在我的 Makefile 中我说,我将使用这个目标:
...
CFLAGS += -D_LINUX_TARGET_
...
但是当我编译时出现这个错误:
../../../../../../../Generic/Common/Include/target_definition.h:145:0: warning: "__linux__" redefined [enabled by default]
#define __linux__
^
../../../RefFT/Float/src/LIMITOR_main_32f.c:1:0: note: this is the location of the previous definition
/*---------------------------------------------------------------------------
^
我不明白为什么,因为这适用于 macOS 或 windows 目标...
编辑
Joachim Pileborg 回答后,我做了什么:
#define LINUX_TARGET (COMPILER_GCC_4_4_1|FAMILY_LINUX|TYPE_X86)
...
#ifdef _LINUX_TARGET_
#ifndef __linux__
#define __linux__
#endif
#define TARGET LINUX_TARGET
...
#ifdef __linux__
#define __LINUX__
#endif
因为在 Linux.
上构建时 __linux__
是 预定义的
我想用 Makefile 编译一个项目。
我在我的一个 .h
中为 linux 定义了目标#define LINUX_TARGET (COMPILER_GCC_4_4_1|FAMILY_LINUX|TYPE_X86)
...
#ifdef _LINUX_TARGET_
#define __linux__
#define TARGET LINUX_TARGET
...
#ifdef __linux__
#define __LINUX__
#endif
所以在我的 Makefile 中我说,我将使用这个目标:
...
CFLAGS += -D_LINUX_TARGET_
...
但是当我编译时出现这个错误:
../../../../../../../Generic/Common/Include/target_definition.h:145:0: warning: "__linux__" redefined [enabled by default]
#define __linux__
^
../../../RefFT/Float/src/LIMITOR_main_32f.c:1:0: note: this is the location of the previous definition
/*---------------------------------------------------------------------------
^
我不明白为什么,因为这适用于 macOS 或 windows 目标...
编辑
Joachim Pileborg 回答后,我做了什么:
#define LINUX_TARGET (COMPILER_GCC_4_4_1|FAMILY_LINUX|TYPE_X86)
...
#ifdef _LINUX_TARGET_
#ifndef __linux__
#define __linux__
#endif
#define TARGET LINUX_TARGET
...
#ifdef __linux__
#define __LINUX__
#endif
因为在 Linux.
上构建时__linux__
是 预定义的