2016-10-26 7 views
1

GOOGLE TESTSでプロジェクト/モジュールを使用しようとするとこのエラーが発生します。GTESTのstd :: mapとdense_hash_mapのコンパイラエラー

gcc.compile.c++ bin/gcc-4.8.3/debug/link-static/gmock_test.o 
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:130:11: error: redefinition of ‘class std::tuple< <template-parameter-1-1> >’ 
    class tuple : public _Tuple_impl<0, _Elements...> 
     ^
In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/tuple:388:11: error: previous definition of ‘class std::tuple< <template-parameter-1-1> >’ 
    class tuple : public _Tuple_impl<0, _Elements...> 
     ^
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:164:20: error: redefinition of ‘class std::tuple<>’ 
    template<> class tuple<> { }; 
        ^
In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/tuple:512:11: error: previous definition of ‘class std::tuple<>’ 
    class tuple<> 
     ^
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:168:11: error: redefinition of ‘class std::tuple<_T1, _T2>’ 
    class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 
     ^
In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/tuple:521:11: error: previous definition of ‘class std::tuple<_T1, _T2>’ 
    class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> 
     ^
In file included from /usr/include/c++/4.8.2/tuple:38:0, 
       from /usr/include/c++/4.8.2/bits/stl_map.h:63, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/utility:83:24: error: template parameter ‘long unsigned int _Int’ 
    template<std::size_t _Int, class _Tp> 
         ^
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:223:12: error: redeclared here as ‘int __i’ 
    struct tuple_element; 
      ^
/usr/include/c++/4.8.2/tr1/tuple:230:12: error: specialization of ‘template<long unsigned int _Int, class _Tp> struct std::tuple_element’ in different namespace [-fpermissive] 
    struct tuple_element<__i, tuple<_Head, _Tail...> > 
      ^
In file included from /usr/include/c++/4.8.2/tuple:38:0, 
       from /usr/include/c++/4.8.2/bits/stl_map.h:63, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/utility:84:11: error: from definition of ‘template<long unsigned int _Int, class _Tp> struct std::tuple_element’ [-fpermissive] 
    class tuple_element; 
     ^
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:237:12: error: redefinition of ‘struct std::tuple_element<0ul, std::tuple<_El0, _El ...> >’ 
    struct tuple_element<0, tuple<_Head, _Tail...> > 
      ^
In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/tuple:687:12: error: previous definition of ‘struct std::tuple_element<0ul, std::tuple<_El0, _El ...> >’ 
    struct tuple_element<0, tuple<_Head, _Tail...> > 
      ^
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:248:12: error: redefinition of ‘struct std::tuple_size<std::tuple<_Args1 ...> >’ 
    struct tuple_size<tuple<_Elements...> > 
      ^
In file included from /usr/include/c++/4.8.2/bits/stl_map.h:63:0, 
       from /usr/include/c++/4.8.2/map:61, 
       from 8k/include/Source.h:12, 
       from src/unit_tests_theo.cpp:2: 
/usr/include/c++/4.8.2/tuple:737:12: error: previous definition of ‘struct std::tuple_size<std::tuple<_Args1 ...> >’ 
    struct tuple_size<tuple<_Elements...>> 
      ^
In file included from /usr/include/c++/4.8.2/tr1/functional:39:0, 
       from /usr/local/include/google/dense_hash_map:106, 
       from sagarmatha/utils/include/multicast_receiver.h:11, 
       from include/transmitter/mcx_receiver.h:25, 
       from src/unit_tests_theo.cpp:7: 
/usr/include/c++/4.8.2/tr1/tuple:254:49: error: definition of ‘std::tuple_size<std::tuple<_Args1 ...> >::value’ is not in namespace enclosing ‘std::tuple_size<std::tuple<_Args1 ...> >’ [-fpermissive] 
    const int tuple_size<tuple<_Elements...> >::value; 

map and dense_hash_mapと一緒に使用していることはありますか?助けてください?

+0

'-DGTEST_HAS_TR1_TUPLE = 0 -DGTEST_USE_OWN_TR1_TUPLE = 0'を試しましたか? @MarcoA。 –

+0

。これは何ですか ?私は働いた。 – v78

答えて

1

問題を解決したので、私はこれを答えにしています。コンパイルにtr1タプルも独自のタプル実装も使わないように指示するには、-DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=0を設定します。

関連する問題