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 进行编译,然后就正常了
目前软件编译通过,但暂时无法运行,剩下的后面继续解决。
标签:QT,windows,适配,编译,版本,linux,PATH From: https://www.cnblogs.com/esther711/p/16906653.html