QT程序本身在windows中进行开发的,移植到linux系统上进行编译后发现了不少问题,需要一一进行修改

1.系统时间修改

首先是系统时间问题

SYSTEMTIME current_date_time;
GetLocalTime( ¤t_date_time );

编译无法通过,因为GetLocalTime是Windows API 函数,无法兼容linux,改为

QDateTime  datetime = QDateTime::currentDateTime();
QString  Timestamp = datetime.toString("yyyy-MM-ddThh:mm:ss.zzz");

 即成功

2.moc文件系统函数无法识别

qt_meta_stringdata_AppInit
QT_WARNING_DISABLE_DEPRECATED

这里参考了

https://blog.csdn.net/cumtwys/article/details/105273100

的说法,应该是QT版本不对

命令端输入

qmake -V

查询版本,显示

 但是我在windows上编译的是QT5.12.3,虚拟机下的也是5.12.3版本,这个5.6.1是麒麟系统自带的版本

因此需要修改QT的环境变量

这里参考了

https://blog.csdn.net/sasafa/article/details/119890701

首先运行

sudo vim /etc/profile

在里面加入

export QTDIR=/opt/Qt5.12.3/5.12.3
export PATH=$QTDIR/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/gcc_64/lib:$LD_LIBRARY_PATH

 

修改完毕后保存退出

然后输入

source /etc/profile

更新环境变量

再查询QT版本

该版本恢复正常

再编译程序,还是有相同问题存在,这里需要进入QT项目页面,选择desktop QT 5.12.3 GCC 64bit 进行编译,然后就正常了

目前软件编译通过,但暂时无法运行,剩下的后面继续解决。

原文地址:http://www.cnblogs.com/esther711/p/16906653.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性