初学银河麒麟linux笔记 第四章 windows中开发的QT程序适配linux的修改——error: ‘QT_WARNING_DISABLE_DEPRECATED’ does not name a type

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 进行编译,然后就正常了

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

posted @ 2022-11-19 21:39  艾绒  阅读(585)  评论(0编辑  收藏  举报