高中生
最后登录1970-1-1
在线时间 小时
注册时间2021-4-25
|
我按野火学习Qt交叉编译环境搭建,安装到交叉编译Qt,出现如下错误“no matching function for call to ‘std::mersenne_twister_engine”:请问是我的Ubuntu版本20.04的问题么,一定要用18.04才行吗?跪求大神指点。具体错误提示如下:
Creating qmake...
./home/ubuntu/Qtlinux/qt-everywhere-src-5.11.3/qtbase/src/corelib/global/qrandom.cpp: In static member function ‘static void QRandomGenerator::SystemAndGlobalGenerators::securelySeed(QRandomGenerator*)’:
/home/ubuntu/Qtlinux/qt-everywhere-src-5.11.3/qtbase/src/corelib/global/qrandom.cpp:455:62: error: no matching function for call to ‘std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>::mersenne_twister_engine(QRandomGenerator::SystemGenerator&)’
455 | new (&rng->storage.engine()) RandomEngine(self()->sys);
| ^
In file included from /usr/include/c++/9/random:49,
from /home/ubuntu/Qtlinux/qt-everywhere-src-5.11.3/qtbase/src/corelib/global/qrandom.h:45,
from /home/ubuntu/Qtlinux/qt-everywhere-src-5.11.3/qtbase/src/corelib/global/qrandom.cpp:43:
/usr/include/c++/9/bits/random.h:530:9: note: candidate: ‘template<class _Sseq, class> std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mersenne_twister_engine(_Sseq&)’
530 | mersenne_twister_engine(_Sseq& __q)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/random.h:530:9: note: template argument deduction/substitution failed:
/usr/include/c++/9/bits/random.h: In substitution of ‘template<class _Sseq, class _Engine, class _Res, class _GenerateCheck> using __is_seed_seq = std::__and_<std::__not_<std::is_same<typename std::remove_cv<typename std::remove_reference<_Tp>::type>::type, _Engine> >, std::is_unsigned<typename _Sseq::result_type>, std::__not_<std::is_convertible<_Sseq, _Res> > > [with _Sseq = QRandomGenerator::SystemGenerator; _Engine = std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>; _Res = unsigned int; _GenerateCheck = void]’:
/usr/include/c++/9/bits/random.h:491:8: required by substitution of ‘template<class _UIntType, long unsigned int __w, long unsigned int __n, long unsigned int __m, long unsigned int __r, _UIntType __a, long unsigned int __u, _UIntType __d, long unsigned int __s, _UIntType __b, long unsigned int __t, _UIntType __c, long unsigned int __l, _UIntType __f> template<class _Sseq> using _If_seed_seq = typename std::enable_if<std::__detail::__is_seed_seq<_Sseq, std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>, _UIntType>::value>::type [with _Sseq = QRandomGenerator::SystemGenerator; _UIntType = unsigned int; long unsigned int __w = 32; long unsigned int __n = 624; long unsigned int __m = 397; long unsigned int __r = 31; _UIntType __a = 2567483615; long unsigned int __u = 11; _UIntType __d = 4294967295; long unsigned int __s = 7; _UIntType __b = 2636928640; long unsigned int __t = 15; _UIntType __c = 4022730752; long unsigned int __l = 18; _UIntType __f = 1812433253]’
/usr/include/c++/9/bits/random.h:528:32: required from here
/usr/include/c++/9/bits/random.h:197:13: error: no type named ‘result_type’ in ‘struct QRandomGenerator::SystemGenerator’
197 | using __is_seed_seq = __and_<
| ^~~~~~~~~~~~~
/usr/include/c++/9/bits/random.h:519:7: note: candidate: ‘std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mersenne_twister_engine(std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type) [with _UIntType = unsigned int; long unsigned int __w = 32; long unsigned int __n = 624; long unsigned int __m = 397; long unsigned int __r = 31; _UIntType __a = 2567483615; long unsigned int __u = 11; _UIntType __d = 4294967295; long unsigned int __s = 7; _UIntType __b = 2636928640; long unsigned int __t = 15; _UIntType __c = 4022730752; long unsigned int __l = 18; _UIntType __f = 1812433253; std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type = unsigned int]’
519 | mersenne_twister_engine(result_type __sd)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/random.h:519:43: note: no known conversion for argument 1 from ‘QRandomGenerator::SystemGenerator’ to ‘std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>::result_type’ {aka ‘unsigned int’}
519 | mersenne_twister_engine(result_type __sd)
| ~~~~~~~~~~~~^~~~
/usr/include/c++/9/bits/random.h:516:7: note: candidate: ‘std::mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mersenne_twister_engine() [with _UIntType = unsigned int; long unsigned int __w = 32; long unsigned int __n = 624; long unsigned int __m = 397; long unsigned int __r = 31; _UIntType __a = 2567483615; long unsigned int __u = 11; _UIntType __d = 4294967295; long unsigned int __s = 7; _UIntType __b = 2636928640; long unsigned int __t = 15; _UIntType __c = 4022730752; long unsigned int __l = 18; _UIntType __f = 1812433253]’
516 | mersenne_twister_engine() : mersenne_twister_engine(default_seed) { }
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/random.h:516:7: note: candidate expects 0 arguments, 1 provided
/usr/include/c++/9/bits/random.h:461:11: note: candidate: ‘constexpr std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>::mersenne_twister_engine(const std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>&)’
461 | class mersenne_twister_engine
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/9/bits/random.h:461:11: note: no known conversion for argument 1 from ‘QRandomGenerator::SystemGenerator’ to ‘const std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>&’
/usr/include/c++/9/bits/random.h:461:11: note: candidate: ‘constexpr std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>::mersenne_twister_engine(std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>&&)’
/usr/include/c++/9/bits/random.h:461:11: note: no known conversion for argument 1 from ‘QRandomGenerator::SystemGenerator’ to ‘std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>&&’
make: *** [Makefile:314:qrandom.o] 错误 1
\033[1;33mdone...\033[0m
\033[1;33mstart make and install qt-everywhere-src-5.11.3 ...\033[0m
make: *** 没有指明目标并且找不到 makefile。 停止。
\033[1;33mdone...\033[0m
ubuntu@ubuntu:~/Qtlinux$ make -j4
make: *** 没有指明目标并且找不到 makefile。 停止。
|
|