在Cygwin下编译QT3
时间:2020年01月15日 人气:...

最近因为有个特殊需要,需要QT3支持,网上找了一圈,发现免费的可能是没有了,高版本的QT倒是有但是根据网上的信息似乎商业版的有适用于windows的QT3。


看着网上各种胡说乱写的,我也就不再搜索浪费时间了,直接自己想办法在cygwin下编译一个吧。

经过一番折腾,我成功编译了出来,还验证了可以用,为了弥补网上QT3在windows下编译资料奇少的遗憾,我整理了一下我的编译步骤,供有需要的朋友参考(虽然QT3已经过时了)。


  1. 本地的cygwin环境除了安装常用的开发套件(如make gcc等),还需要安装libX11-devel和libXext-devel,不安装有些东西就没法正常执行了;

  2. 在官网download.qt.io下载源码qt-x11-free-3.3.8b.tar,但是建议下载我附件提供的这个源码,因为我已经修改了;

  3. 解压源码:tar -xvf qt-x11-free-3.3.8b.tar(7z x qt-x11-free-3.3.8b.7z),如我解压在/home/yichen/qt-x11-free-3.3.8b;

  4. 进入/home/yichen/qt-x11-free-3.3.8b目录,设置环境变量如:export QTDIR=/home/yichen/qt-x11-free-3.3.8b;

  5. 我想将来安装到/opt/qt3目录下,所以执行./configure -prefix /opt/qt3;

  6. 一开始需要提示你是否接受license,按照提示输入yes回车即可;


  7. 正常这里面会有些错误:如缺失qt_windows.h、qt_winner未定义、WA不识别、Status重定义、HANDLE重定义等等一些列问题,这些都需要编译者一一解决。这里我附件提供的这个源码,已经将这些问题都修改好了,还将为了解决类型重定义将一些修改的第三方lib头文件放入了extern目录,所以偷懒者直接下载我这个源码包解压,就可以避免这里的错误。

  8. 完成configure之后,会有提示执行make编译或执行make confclean清除配置;


  9. 执行make;

  10. 如果编译中途出现执行uic.exe时提示错误:

    uic.exe: error while loading shared libraries: libqt.dll.3.3.8: cannot open shared object file: No such file or directory

       这是在bin目录下编译出了uic.exe,在lib目录下编译出了libqt.dll,而uic.exe运行的时候需要libqt.dll库,但是默认路径找不到就出错了,这里为了省事,执行拷过去就可以了:cp ./lib/libqt.dll.3.3.8 /bin/,然后再次执行make即可。


    但是如果提示的错误是:

    uic.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory

    这说明是没安装libX11-devel和libXext-devel开发库,安装之后再执行make即可。


最后编译完成了,执行make install耐心等待安装到/opt/qt3目录即可。


我修改过的QT3源码包:qt-x11-free-3.3.8b.7z

热门评论