编译器项目中的目标失败

时间:2015-05-18 15:41:03

标签: c compilation target

编译中的工作目标如何(在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 \

2 个答案:

答案 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,但你真的应该阅读构建器/安装程序文档,因为可能有更好的方法来解决它,并且可能还有其他事情你需要做。