1. 编写QT程序时,make后出错:make: *** 没有规则可以创建“/opt/first"需要的目标“INTERFACES”.停止。
缺少MakeFile,LZ有没有先用qmake生成工程文件,之后再生成makefile,命令行下应该这样:
qmake -proect
qmake
make
之后运行……
前言
在开发过程中遇到Qt的bug,特别是QAccessibleWidget模块内部崩溃的问题,官方的BugReport可能无法及时修复。为了不耽误项目,决定自行修改Qt源码并进行编译。
环境搭建
在Windows 10专业版64位系统下,使用visual studio 2019作为编译器。此外,利用git和小乌龟tortoiseGit进行版本管理。安装时选择64位且为LTS版本的ruby、python和perl,安装路径确保无中文或空格,以避免编译时出现问题。
目标与依赖
目标是编译Qt5.15.2版本,支持msvc2019编译器的64位Windows环境。所需依赖包括ruby、python和perl,均从官网下载安装包。安装过程简单,选择“下一步”,确保“自动添加到系统环境变量”选项被选中。
Qt源码获取
Qt源码可从官方网站下载页面或github仓库获取。使用git clone或小乌龟下载至指定路径,如“F:\qt\qt5”。下载完成后,通过小乌龟的右键菜单更新子模块至tag 5.15.2版本。
编译过程
在仓库上一层目录下创建bat脚本,引用vs编译器环境变量并执行configure命令。配置项包括指定安装路径、使用开源协议、自动确认协议、指定库类型、跳过某些模块的编译、开启多进程编译、只编译release模式、优化文件尺寸等。编译过程可能需要2个半小时左右,完成后执行nmake install命令进行安装。
bug修复与测试
针对QAccessibleWidget模块的bug,定位到问题根源并进行修改。将修改后的dll替换到已安装的Qt库中,程序正常运行且测试未再出现空指针错误。然而,只替换一个dll不可靠,需要确保编译环境与官方一致。遇到的另一个问题是,替换dll后打包的程序在某些用户电脑上启动后界面无法正常显示,这表明只替换dll可能不足以解决兼容性问题。最终,替换所有新编译的库,确保了程序的稳定运行。