2011-04-19 92 views
2

當我編譯g++克++在Mac OS X - CoreServices.h錯誤

#include <CoreServices/CoreServices.h> 
int main(int argc, char ** argv) 
{ 
    return 0; 
} 

下面的代碼我得到這個錯誤。

bash-3.2$ g++ test.C 
In file included from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:43:0, 
       from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:20, 
       from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, 
       from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21, 
       from test.C:1: 
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBundle.h:147:120: error: format string argument not a string type 

有沒有人知道我能做些什麼來讓它工作?我正在嘗試使用mach_absolute_timeAbsoluteToNanoseconds,它位於CoreServices.h之內,如here

g++ -v 
gcc version 4.5.0 20100107 (experimental) (GCC) 

回答

3

它看起來像你試圖使用蘋果的框架,而不使用蘋果的工具鏈 - 這可能不會工作。你的例子程序在這裏爲我編寫罰款,使用與Xcode(和鐺)隨附的海灣合作委員會:

$ cat example.cpp 
#include <CoreServices/CoreServices.h> 
int main(int argc, char ** argv) 
{ 
    return 0; 
} 
$ make example 
g++  example.cpp -o example 
$ rm example 
$ CXX=clang make example 
clang  example.cpp -o example 
$ 
+1

卡爾,gcc 4.5絕對不是蘋果。他們放棄了GCC,因爲該項目更改了許可證,並將重點放在Clang/LLVM上,而不是編譯器的任何主要版本。 – 2011-04-19 17:23:26

+3

@Vlad - 這就是我在我的回答中所說的,不是嗎? – 2011-04-19 17:39:28

+1

我並不是說你錯了。你只是說「它看起來像」,而我確認它看起來確實如此:-) – 2011-04-19 17:45:36