1

我在使用从 macports 下载的 g++-mp-4.8 运行一些标准命令(例如 sleep() 时遇到严重问题。使用 llvm-g++-4.2 编译时,我没有任何这些问题。

这很烦人,因为我试图在这个程序中使用 C++11 功能。

这是从编译器中读出的信息——我真的很抱歉它太长了,我只是不知道该怎么处理它:

17:11:54 **** Incremental Build of configuration Debug for project BSDESimV2 ****
make all 
Building file: ../TrueSolutions/TrueSoln.cpp
Invoking: GCC C++ Compiler
/opt/local/bin/g++ -g -O0 -Wall -I/opt/local/include -I/usr/include -I/usr/llvm-gcc-4.2 /lib/gcc/i686-apple-darwin11/4.2.1/include -I/Applications/Xcode.app/Contents/Developer/usr/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include -I/usr/include/c++/4.2.1 -I/usr/include/c++/4.2.1/backup -I/opt/local/bin -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"TrueSolutions/TrueSoln.d" -MT"TrueSolutions/TrueSoln.d" -o "TrueSolutions/TrueSoln.o" "../TrueSolutions/TrueSoln.cpp"
In file included from /usr/include/c++/4.2.1/bits/stl_algobase.h:72:0,
                 from /usr/include/c++/4.2.1/bits/char_traits.h:46,
                 from /usr/include/c++/4.2.1/ios:45,
                 from /usr/include/c++/4.2.1/istream:44,
                 from /usr/include/c++/4.2.1/fstream:45,
                 from ../TrueSolutions/TrueSoln.h:15,
                 from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:381:12: error: expected identifier before '__is_pod'
     struct __is_pod
        ^
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:381:12: error: expected unqualified-id before '__is_pod'
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:394:12: error: expected identifier before '__is_empty'
     struct __is_empty
        ^
/usr/include/c++/4.2.1/bits/cpp_type_traits.h:394:12: error: expected unqualified-id before '__is_empty'
In file included from /usr/include/c++/4.2.1/memory:54:0,
                 from /usr/include/c++/4.2.1/string:48,
                 from /usr/include/c++/4.2.1/bits/locale_classes.h:47,
                 from /usr/include/c++/4.2.1/bits/ios_base.h:47,
                 from /usr/include/c++/4.2.1/ios:48,
                 from /usr/include/c++/4.2.1/istream:44,
                 from /usr/include/c++/4.2.1/fstream:45,
                 from ../TrueSolutions/TrueSoln.h:15,
                 from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/allocator.h:135:41: error: expected unqualified-id before '__is_empty'
    template<typename _Alloc, bool = std::__is_empty<_Alloc>::__value>
                                     ^
/usr/include/c++/4.2.1/bits/allocator.h:135:41: error: expected '>' before '__is_empty'
In file included from /usr/include/c++/4.2.1/vector:70:0,
                 from ../TrueSolutions/TrueSoln.h:23,
                 from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/stl_vector.h: In member function 'void std::vector<_Tp, _Alloc>::swap(std::vector<_Tp, _Alloc>&)':
/usr/include/c++/4.2.1/bits/stl_vector.h:740:34: error: template argument 2 is invalid
  std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
                              ^
/usr/include/c++/4.2.1/bits/stl_vector.h:740:45: error: invalid type in declaration before '(' token
  std::__alloc_swap<_Tp_alloc_type>::_S_do_it(_M_get_Tp_allocator(),
                                         ^
/usr/include/c++/4.2.1/bits/stl_vector.h:741:36: error: expression list treated as compound expression in initializer [-fpermissive]
           __x._M_get_Tp_allocator());
                                ^
In file included from /usr/include/c++/4.2.1/vector:71:0,
                 from ../TrueSolutions/TrueSoln.h:23,
             from ../TrueSolutions/TrueSoln.cpp:8:
/usr/include/c++/4.2.1/bits/stl_bvector.h: In member function 'void std::vector<bool, _Alloc>::swap(std::vector<bool, _Alloc>&)':
/usr/include/c++/4.2.1/bits/stl_bvector.h:690:56: error: template argument 2 is invalid
       std::__alloc_swap<typename _Base::_Bit_alloc_type>::
                                                    ^
/usr/include/c++/4.2.1/bits/stl_bvector.h:691:10: error: invalid type in declaration before '(' token
  _S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator());
      ^
/usr/include/c++/4.2.1/bits/stl_bvector.h:691:61: error: expression list treated as compound expression in initializer [-fpermissive]
  _S_do_it(_M_get_Bit_allocator(), __x._M_get_Bit_allocator());
                                                         ^
make: *** [TrueSolutions/TrueSoln.o] Error 1
4

1 回答 1

0

正如提示中所建议的那样,我摆脱了所有过时的 's 并像在Eclipse、Macos 10.8 和 C++11-I/中一样设置clang++编译器

我的代码和 stl 之间存在一些冲突,但它们很容易从控制台输出中找到。

于 2013-07-10T18:42:46.010 回答