2017-01-22 2 views
0

Я используюг ++ присущий не может преобразовать

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

на поле в LinuxMint 17,2

Попытка построить гр-скан из https://github.com/briand/gr-scan.git

с

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); 
                    ^

т.д.

Есть ли простое решение?

+0

Это похоже на что-то не так с вашим C++ stdlib! –

ответ

0

Это определенно не похоже на проблему с GNU Radio, больше похоже на что-то принципиально неправильное с вашей установкой GCC/g ++/stdlibC++. Убедитесь, что у вас нет конфликтных установок, или флаги, используемые при создании пакета gnuradio, несовместимы с тем, что вы используете сейчас.

На самом деле, std=c++11 действительно выглядит подозрительным.

+0

Установка GCC/g ++/stdlibC++ была выполнена с использованием инструментов управления пакетами, а не с использованием метода ручной проверки ошибок. Я сделал dpkg -verify и ничего не сообщалось. –

+0

Я попытался удалить std = C++ 11 из файла make-файла gr-scan и получил ошибку, потому что автор использовал некоторый синтаксис из стандарта C++ 2011 года. Я выберу руководства и переписал их для стандартного стандарта 1994 года. –

+0

Я посмотрю на установку gnuradio и флаги компиляции. Это было сделано с помощью скрипта из https://smile.amazon.com/Hobbyists-Guide-RTL-SDR-Software-Defined/dp/1514716690/ –

Смежные вопросы