Loading...
首页问答  

如何解决QT移植3516D,./configure出现重复定义问题

横贯八方
横贯八方  发布于 2021-04-27 15:40:27 296

今天想把QT移植到dv300,今天在网上找教程,找到这位大神的移植教程
https://blog.csdn.net/cocoron/article/details/105662856

我的ubuntu12.04,我按照他的步骤,下载了qt-everywhere-src-5.12.0.tar.xz到./configure -prefix /opt/qt5.12.8_hi3516dv300/shared的时候就出现了错误,如下:

.In file included from /home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/qendian.h:1:0,
from /home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/src/corelib/codecs/qutfcodec.cpp:43:
/home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/../../src/corelib/global/qendian.h:165:61: error: redeclaration ‘constexpr T qbswap(T) [with T = qfloat16]’ differs in ‘constexpr’
template <> inline qfloat16 qbswap(qfloat16 source)
^
/home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/../../src/corelib/global/qendian.h:96:42: error: from previous declaration ‘constexpr T qbswap(T) [with T = qfloat16]’
template Q_DECL_CONSTEXPR T qbswap(T source);
^
/home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/../../src/corelib/global/qendian.h:170:52: error: redeclaration ‘constexpr T qbswap(T) [with T = float]’ differs in ‘constexpr’
template <> inline float qbswap(float source)
^
/home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/../../src/corelib/global/qendian.h:96:42: error: from previous declaration ‘constexpr T qbswap(T) [with T = float]’
template Q_DECL_CONSTEXPR T qbswap(T source);
^
/home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/../../src/corelib/global/qendian.h:175:55: error: redeclaration ‘constexpr T qbswap(T) [with T = double]’ differs in ‘constexpr’
template <> inline double qbswap(double source)
^
/home/phoenix/OPT/qt-everywhere-src-5.12.0/qtbase/include/QtCore/../../src/corelib/global/qendian.h:96:42: error: from previous declaration ‘constexpr T qbswap(T) [with T = double]’
template Q_DECL_CONSTEXPR T qbswap(T source);
^
make: * [qutfcodec.o] Error 1

似乎是似乎是个和大小端有关的函数,出现qbswap重复定义的错误了,有没有大佬遇过相似的问题?

我来回答
回答可得5积分
16个回答
发布于 2021-04-27 16:52:42
最佳答案

解决了。。。qt要使用稳定版本

0
发布于 2021-04-27 17:40:38

但是make时,又出现了错误:

/usr/lib/libdl.so
.obj/qthread.o: In function QThreadCreateThread::run()': qthread.cpp:(.text._ZN19QThreadCreateThread3runEv[_ZN19QThreadCreateThread3runEv]+0x8c): undefined reference tostd::__atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int, unsigned int, bool, std::chrono::duration >, std::chrono::duration >)’
collect2: error: ld returned 1 exit status
make[3]: ** [../../lib/libQt5Core.so.5.12.8] Error 1
make[3]: Leaving directory /home/phoenix/OPT/qt-everywhere-src-5.12.8/qtbase/src/corelib' make[2]: *** [sub-corelib-make_first] Error 2 make[2]: Leaving directory/home/phoenix/OPT/qt-everywhere-src-5.12.8/qtbase/src’
make[1]: [sub-src-make_first] Error 2
make[1]: Leaving directory `/home/phoenix/OPT/qt-everywhere-src-5.12.8/qtbase’
make:
[module-qtbase-make_first] Error 2

似乎是线程相关库出了问题

0
发布于 2021-04-28 10:25:52

不知名的错误。。。make clean后重新第二次make又成功了。。就是浪费的时间有点多。。坑啊

0
发布于 2021-04-28 16:40:19

不知名的错误。。。make clean后重新第二次make又成功了。。就是浪费的时间有点多。。坑啊

已经成功了, 就按照上面链接那个大神的教程

1
发布于 2021-09-09 15:09:56

图形绘制一般的操作有画点,画线,填充,搬移,缩放等

0
发布于 2021-09-09 15:10:12

qt的绘制是纯软件绘制

0
发布于 2021-09-09 15:11:00

而qt在嵌入式领域的绘制是纯软件绘制,也就是依赖于cpu的

0
发布于 2021-09-09 15:12:25

不过像中高端的芯片,一般都有硬件加速,有些内置了GPU,使用opengl加速。

0
发布于 2021-09-09 15:13:59

在海思的话当然就是TDE了,如果想要减少CPU的开支,并且充分利用上海思硬件,那就必须要把海思TDE作为qt的绘制工具

0
发布于 2021-09-10 09:04:27

目前还不知道怎么修改

0
发布于 2021-09-10 09:05:46
发布于 2021-09-10 09:06:31

可能这些都是Qt的源码,得修改Qt的底层

0
发布于 2021-09-10 09:06:49

但是目前还没有定位到对应的代码

0
发布于 2021-09-10 09:07:11

再看看吧,慢慢的找找,总会有办法的

0
发布于 2021-09-10 09:08:12

有成功的大佬,路过可以简单提供思路给小弟参考参考

0
发布于 2021-09-10 09:08:35

有兴趣的朋友也可以一起来研究

0
+ 添加网盘链接/附件
或将文件直接拖到这里
悬赏:
EBC
文件格式必须为doc,docx,xls,xlsx,pdf,ppt,pptx,txt,zip,rar,tar,7z,gz
网盘
* 网盘链接:
* 提取码:
悬赏:
EBC
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区