2013-06-02 42 views
0

我們有一個.mm文件包括<官能>(一個std報頭)和它報告下面的錯誤:如何編譯<functional>在xcode的4.6.2與C++ 11啓用

In file included from 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/mutex:177: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1672:1: error: cannot declare a class template with no name 
class __bind 
^ 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1742:35: error: expected expression 
struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {}; 
           ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1742:36: error: '_Fp' does not refer to a value 
struct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {}; 
           ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1741:16: note: declared here 
template<class _Fp, class ..._BoundArgs> 
      ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:20: error: expected class name 
    : public __bind<_Fp, _BoundArgs...> 
       ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:39: error: expected '{' after base class list 
    : public __bind<_Fp, _BoundArgs...> 
            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:39: error: expected ';' after class 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1746:39: error: expected unqualified-id 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1806:23: error: expected '>' 
__bind<_Fp, _BoundArgs...> 
        ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/functional:1806:26: error: expected unqualified-id 
__bind<_Fp, _BoundArgs...> 

命令行是

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang \ 
-x objective-c++ -arch armv7 -fmessage-length=0 -std=c++11 -stdlib=libc++ -fobjc-arc \ 
-Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers \ 
-Wno-missing-prototypes -Wreturn-type -Wno-implicit-atomic-properties \ 
-Wno-receiver-is-weak -Wno-non-virtual-dtor -Wno-overloaded-virtual \ 
-Wno-exit-time-destructors -Wformat -Wno-missing-braces -Wparentheses \ 
-Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter \ 
-Wunused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized \ 
-Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion \ 
-Wno-constant-conversion -Wno-int-conversion -Wno-enum-conversion \ 
-Wno-shorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match \ 
-Wno-undeclared-selector -Wno-deprecated-implementations -Wno-c++11-extensions ... 

是否有任何解決方法?

回答

2

這樣的錯誤通常不是由<functional>造成的,否則全世界都會報告它們。更可能的原因是你的一個頭文件做了一些它不應該做的事情,這些事情隨後引起了問題。例如。 #define __bind會產生這裏看到的錯誤,顯然是非法的。