2015-05-18 108 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,但你真的應該讀建設者/安裝文檔,有可能是一個更好的方法去做,並且可能還有其他的事情需要你去做。