编译中的工作目标如何(在C中)?
我正在开展一个项目,但我在#error You have to define a target in your compiler project properties.
我想知道编译中的目标是什么以及它是如何工作的。
我的编译器是GCC
修改
这是我的错误:
In file included from ../../../RefFT/Common/src/SIGPROC_COMMON_ippdefs.h:55:0,
from ../../../RefFT/Common/src/SIGPROC_COMMON_memory_alloc.c:36:
../../../../../../../Generic/Common/Include/target_definition.h:195:6: error: #error You have to define a target in your compiler project properties.
#error You have to define a target in your compiler \
我正在编写一个为Iphone Target编译的项目(可能是用xcode编译的),我想用gcc编译它。
这是target_definition.h的一部分
#ifdef _X86_VC6_TARGET_
#define TARGET X86_VC6_TARGET
#elif defined _X86_VC7_1_TARGET_
#define TARGET X86_VC7_1_TARGET
#elif defined _X86_VC8_TARGET_
#define TARGET X86_VC8_TARGET
#elif defined _X86_VC9_TARGET_
#define TARGET X86_VC9_TARGET
#elif defined _X86_VC11_TARGET_
#define TARGET X86_VC11_TARGET
#elif defined _X86_VC12_TARGET_
#define TARGET X86_VC12_TARGET
#elif defined _X86_GCC_3_2_2_TARGET_
#define TARGET X86_GCC_3_2_2_TARGET
#elif defined _X86_GCC_4_1_1_TARGET_
#define TARGET X86_GCC_4_1_1_TARGET
#elif defined _MACOS_TARGET_
#define __macos__
#define TARGET MACOS_TARGET
#elif defined _X86_MACOS_GCC_4_2_1_TARGET_
#define __macos__
#define TARGET X86_MACOS_GCC_4_2_1_TARGET
#elif defined _X86_MSYS_GCC_4_4_1_TARGET_
#define TARGET X86_MSYS_GCC_4_4_1_TARGET
#elif defined _ARM11_IPHONEOS_GCC_4_2_1_TARGET_
#define TARGET ARM11_IPHONEOS_GCC_4_2_1_TARGET
#elif defined _IPHONEOS_TARGET_
#define TARGET IPHONEOS_TARGET
#elif defined _ARM9_VE4_TARGET_
#define TARGET ARM9_VE4_TARGET
#elif defined _ARM9_VC8_TARGET_
#define TARGET ARM9_VC8_TARGET
#elif defined _ARM9_GCC_TARGET_
#else
#error You have to define a target in your compiler \
答案 0 :(得分:2)
您没有说出什么是编译器版本或操作系统,但是从代码中,您需要定义适当的标识符(可能通过使用通过makefile传递给gcc
的{{3}})。
以下是海湾合作委员会的成员:
_X86_GCC_3_2_2_TARGET_
_X86_GCC_4_1_1_TARGET_ << Probably this one for Linux
_X86_MACOS_GCC_4_2_1_TARGET_
_X86_MSYS_GCC_4_4_1_TARGET_ << Or this one for Windows
_ARM11_IPHONEOS_GCC_4_2_1_TARGET_
_ARM9_GCC_TARGET_
答案 1 :(得分:2)
您的代码期望从外部定义多个预处理器宏中的一个,这可能有助于它在各种编译器特定的优化或非标准功能中进行选择。在尝试使用make
构建项目时收到此类错误表明构建系统较差或不完整,或者在某种预构建配置过程中跳过了步骤。可能两者都有。
您可以通过执行以下操作来解决此特定问题:
make CFLAGS=-D_X86_GCC_4_1_1_TARGET_=1
而不是裸make
,但你真的应该阅读构建器/安装程序文档,因为可能有更好的方法来解决它,并且可能还有其他事情你需要做。