сделайте проблему, последний аргумент должен составить непосредственных 8 битов

Может любой помогать, наклон, кажется, находят фиксацию или понимают то, что я должен попробовать этой программой C++

 plutes@plutes-Lenovo-G50-30:~/itpp-4.3.1/build$ make 
[  1%] Building CXX object itpp/CMakeFiles/itpp.dir/base/random.cpp.o
In file included from /home/plutes/itpp-4.3.1/itpp/base/random_dsfmt.h:40:0,
                 from /home/plutes/itpp-4.3.1/itpp/base/random.h:32,
                 from /home/plutes/itpp-4.3.1/itpp/base/random.cpp:29:
/home/plutes/itpp-4.3.1/itpp/base/random_dsfmt.h: In static member function ‘static void itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::do_recursion(typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*, typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*, typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*, typename itpp::random_details::DSFMT<MEXP, POS1, SL1, MSK1, MSK2, FIX1_V, FIX2_V, PCV1_V, PCV2_V>::Context::w128_t*) [with int MEXP = 19937; int POS1 = 117; int SL1 = 19; long unsigned int MSK1 = 4498102069230399; long unsigned int MSK2 = 4501400546508797; long unsigned int FIX1_V = 10376655713290109737; long unsigned int FIX2_V = 4291106551315987578; long unsigned int PCV1_V = 4432916062321256576; long unsigned int PCV2_V = 1]’:
/home/plutes/itpp-4.3.1/itpp/base/random_dsfmt.h:306:17: error: the last argument must be an 8-bit immediate
     __m128i y = _mm_shuffle_epi32(lung->si, SSE2_SHUFF);
                 ^
itpp/CMakeFiles/itpp.dir/build.make:422: recipe for target 'itpp/CMakeFiles/itpp.dir/base/random.cpp.o' failed
make[2]: *** [itpp/CMakeFiles/itpp.dir/base/random.cpp.o] Error 1
CMakeFiles/Makefile2:87: recipe for target 'itpp/CMakeFiles/itpp.dir/all' failed
make[1]: *** [itpp/CMakeFiles/itpp.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2     
1
задан 28 June 2018 в 00:25

1 ответ

Здесь два метода:

  • компилировать последний Git-источник
  • использовать официальные пакеты Ubuntu из репозитория ( предпочтительный способ )
[ 1110] Используйте последний источник из Git

Последний itpp-4.3.1.tar.bz2 не компилируется в Ubuntu 18.04 LTS, как вы уже писали. Но он обычно компилируется в Ubuntu 16.04 LTS с GCC 5.4.

Я только что обнаружил, что у разработчиков есть новый специальный коммит для исправления ошибки . Поэтому мы можем установить исходную версию с помощью:

sudo apt-get install autoconf automake libtool build-essential cmake git \
libblas-dev liblapack-dev libfftw3-dev
cd ~/Downloads
git clone https://git.code.sf.net/p/itpp/git itpp-git
cd itpp-git
./autogen.sh
./configure
mkdir build
cd build
cmake ..
make
sudo make install

Использовать официальные пакеты Ubuntu из репозитория

Я никогда не использовал этот пакет, но кажется, что он упакован с версией 4.3.1-8 как libitpp-dev и libitpp8v5 даже на 18,04 LTS. Таким образом, вы можете установить его с помощью

sudo apt-get install libitpp-dev libitpp8v5

и затем связать свое приложение с IT ++, как описано в документации .

Также вы можете скомпилировать примеры из пакета libitpp-doc.

1
ответ дан 28 June 2018 в 00:25

Другие вопросы по тегам:

Похожие вопросы: