g ++内在无法转换

时间:2017-01-22 22:03:34

标签: c++ g++ gnuradio

我正在使用

$ g ++ --version g ++(Ubuntu 4.8.4-2ubuntu1~14.04.3)4.8.4

在LinuxMint 17.2框上

尝试从https://github.com/briand/gr-scan.git

构建gr-scan

gnuradio 3.7.10.1-1~ubuntu14.04.1myriadr amd64 GNU Radio Software Radio Toolkit

我发现人们处理g ++类似的破坏各种包,或者在他们自己的代码中谜题。但是,我还没有找到一个适用的明确解决方案。

似乎有一些内在的伏都教是罪魁祸首。

在我的情况下,错误是这样的:

g++ -DVERSION="\"gr-scan 2012082301\"" -std=c++11 -Wall -I/usr/local/include -largp -lgnuradio-pmt -lgnuradio-runtime -lgnuradio-blocks -lgnuradio-fft -lgnuradio-filter -lgnuradio-osmosdr -lboost_system -O2 -Wno-unused-function -o gr-scan main.cpp
In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:30:0,
                 from /usr/include/x86_64-linux-gnu/c++/4.8/bits/opt_random.h:33,
                 from /usr/include/c++/4.8/random:51,
                 from /usr/include/c++/4.8/bits/stl_algo.h:65,
                 from /usr/include/c++/4.8/algorithm:62,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:42,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/local/include/gnuradio/sptr_magic.h:26,
                 from /usr/local/include/gnuradio/basic_block.h:27,
                 from /usr/local/include/gnuradio/hier_block2.h:27,
                 from /usr/local/include/gnuradio/top_block.h:27,
                 from topblock.hpp:26,
                 from main.cpp:23:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_cvtsi32_si64(int)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:61:54: error: can’t convert between vector values of different size
   return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
                                                      ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘int _mm_cvtsi64_si32(__m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:104:53: error: cannot convert ‘__m64 {aka int}’ to ‘__vector(2) int’ for argument ‘1’ to ‘int __builtin_ia32_vec_ext_v2si(__vector(2) int, int)’
   return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
                                                     ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_packs_pi16(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:143:69: error: cannot convert ‘__v4hi {aka short int}’ to ‘__vector(4) short int’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_packsswb(__vector(4) short int, __vector(4) short int)’
   return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
                                                                     ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_packs_pi32(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:158:69: error: cannot convert ‘__m64 {aka int}’ to ‘__vector(2) int’ for argument ‘1’ to ‘__vector(4) short int __builtin_ia32_packssdw(__vector(2) int, __vector(2) int)’
   return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
                                                                     ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_packs_pu16(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:173:69: error: cannot convert ‘__v4hi {aka short int}’ to ‘__vector(4) short int’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_packuswb(__vector(4) short int, __vector(4) short int)’
   return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
                                                                     ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_unpackhi_pi8(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:187:70: error: cannot convert ‘__v8qi {aka char}’ to ‘__vector(8) char’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_punpckhbw(__vector(8) char, __vector(8) char)’
   return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
                                                                      ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_unpackhi_pi16(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:201:70: error: cannot convert ‘__v4hi {aka short int}’ to ‘__vector(4) short int’ for argument ‘1’ to ‘__vector(4) short int __builtin_ia32_punpckhwd(__vector(4) short int, __vector(4) short int)’
   return (__m64) __builtin_ia32_punpckhwd ((__v4hi)__m1, (__v4hi)__m2);
                                                                      ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_unpackhi_pi32(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:215:70: error: cannot convert ‘__m64 {aka int}’ to ‘__vector(2) int’ for argument ‘1’ to ‘__vector(2) int __builtin_ia32_punpckhdq(__vector(2) int, __vector(2) int)’
   return (__m64) __builtin_ia32_punpckhdq ((__v2si)__m1, (__v2si)__m2);
                                                                      ^
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h: In function ‘__m64 _mm_unpacklo_pi8(__m64, __m64)’:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/mmintrin.h:229:70: error: cannot convert ‘__v8qi {aka char}’ to ‘__vector(8) char’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_punpcklbw(__vector(8) char, __vector(8) char)’
   return (__m64) __builtin_ia32_punpcklbw ((__v8qi)__m1, (__v8qi)__m2);
                                                                      ^

有一个简单的解决方案吗?

1 个答案:

答案 0 :(得分:0)

这绝对不像GNU Radio问题,更像是GCC / g ++ / stdlibc ++安装的根本错误。确保您没有安装冲突,或者在构建gnuradio软件包时使用的标志与您现在使用的标签不兼容。

事实上,std=c++11似乎确实存在疑问。