我在发布机上将QT程序使用linuxdeployqt生成了一个文件夹,并且将QT目录下的相关依赖以及文件夹都拷贝了过去,分别为lib、libexec、plugins、qml、resources、translations,并且在发布机上直接点击可执行文件可以打开,将该文件夹拷贝到一个没有安装过QT的同版本系统的测试机上时,点击可执行文件可以打开程序,并且其他页面都正常显示,但是当点击包含webview控件的tab页时,程序会崩溃,使用终端观察错误提示显示如下:
求解决办法
我在发布机上将QT程序使用linuxdeployqt生成了一个文件夹,并且将QT目录下的相关依赖以及文件夹都拷贝了过去,分别为lib、libexec、plugins、qml、resources、translations,并且在发布机上直接点击可执行文件可以打开,将该文件夹拷贝到一个没有安装过QT的同版本系统的测试机上时,点击可执行文件可以打开程序,并且其他页面都正常显示,但是当点击包含webview控件的tab页时,程序会崩溃,使用终端观察错误提示显示如下:
求解决办法
你好你好我姓王 晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
根据你提供的错误提示,可以看出程序崩溃的原因是缺少QtWebEngineProcess可执行文件。解决该问题的办法如下:
在发布机上,使用以下命令生成linuxdeployqt可执行文件:
linuxdeployqt AppImageName.AppDir -bundle-non-qt-libs -qmldir=QMLDirectory -appimage
其中,AppImageName是你的应用程序名称,AppDir是你要生成的AppImage文件夹的路径,QMLDirectory是你的QML文件夹的路径。
运行生成的linuxdeployqt可执行文件,将它与TrainControl可执行文件放在同一个目录下。
将该目录下的所有文件(包括生成的AppImage文件夹和TrainControl可执行文件)拷贝到测试机上。
在测试机上,打开终端,导航到TrainControl可执行文件所在的目录。
执行以下命令,给TrainControl可执行文件添加执行权限:
chmod +x TrainControl
执行TrainControl可执行文件,观察是否还会崩溃并记录错误信息。
根据你提供的错误提示,应该是缺少QtWebEngineProcess可执行文件导致崩溃,在上述步骤中,linuxdeployqt会自动将所需的依赖文件拷贝到AppImage文件夹中,包括QtWebEngineProcess可执行文件。确保在发布机上使用了linuxdeployqt生成了完整的AppImage文件夹,并将所有文件正确拷贝到测试机上。
另外,对于QML中的anchors警告,这是因为在使用layout来管理项时,不能同时使用anchors属性设置项的位置,而应该使用Layout.alignment属性。如果你希望解决这个警告,可以修改相关QML文件中的代码,将anchors属性替换为Layout.alignment属性。
希望这些解决方案能够帮助到你,如果问题仍然存在,请提供更多的错误信息和相关的代码,以便我们更好地帮助你解决问题。