2015-05-18 69 views
0

编译中的工作目标(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目标(可能在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

如果你指定了你使用的编译器...... – Eregrith

+0

......以及头文件/源文件中发出错误的行,包括你的问题中的周围行,请帮助。请记住,我们不知道你的建筑物。 – WhozCraig

+1

这不是C语言问题。 C本身对编译目标一无所知。对“项目属性”的引用使我相信这是您如何使用某个IDE的问题。 –

回答

2

的一部分,你不说什么编译VERSON或OS,但是从代码,你需要定义适当的标识符(可能通过使用the -D flag传递给gcc通过你的makefile)。

这里的药粥GCC:

_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_ 
2

你的代码期望的几个预处理宏一个被外部定义,大概是为了帮助各种特定的编译器的优化或非标准功能中选择它。当您尝试使用make构建项目时,您会收到这样的错误,这表明构建系统不良或不完整,或者在某种预构建配置过程中跳过了步骤。可能都是。

这可能是你可以做这样的事情让过去这个特殊的问题:

make CFLAGS=-D_X86_GCC_4_1_1_TARGET_=1 

,而不是裸露make,但你真的应该读建设者/安装文档,有可能是一个更好的方法去做,并且可能还有其他的事情需要你去做。