Qt Webassembly 搭建过程中遇到的问题

        参考来源:(36条消息) Qt中搭建WebAssembly_c1s2d3n4cs的博客-CSDN博客_qt webassembly配置

依据上述博客中的方法在Win10系统搭建Qt Webassembly,搭建过程中遇到一些问题,自己慢慢摸索,解决了一些问题,特此记录。

1.搭建完成后,编译工程,弹出错误

        找不到libstdc++-6.dll,无法继续执行代码
        找不到libgcc_s_seh-1.dll,无法继续执行代码

        在D:\Qt\Qt5.15.2\5.15.2\wasm_32\bin中找到libstdc++-6.dll、libgcc_s_seh-1.dll、libwinpthread-1.dll,复制到D:\Qt\Qt5.15.2\5.15.2\wasm\bin中。

2. 问题2:-1: error: Project ERROR: Cannot run target compiler 'em++'. Maybe you forgot to setup the environment。

        应该是没有设置环境变量,此电脑->属性->高级系统设置->环境变量->系统环境变量

找到Path,编辑,新建如下路径(我的emsdk路径是D:\emsdk\emsdk-main):

Qt Webassembly 搭建过程中遇到的问题_第1张图片3. 修改环境变量后,不再报错。在ui文件中放置了Hello world, 成功打开了网页。如下

Qt Webassembly 搭建过程中遇到的问题_第2张图片

        但是并没有显示文本,受下面链接的启发

         qt for webassembly环境搭建图文教程 - 飞扬青云 - 博客园 (cnblogs.com)

        工程编译完成以后会自动打开电脑默认浏览器比如IE浏览器,因为IE浏览器不支持wasm,所以需要将地址复制拷贝到edge或者谷歌火狐等浏览器运行。按此操作之后,将地址拷贝到了谷歌浏览器,可以显示出控件,但是又出现了新的问题,画面一闪而过,很快就没了,显示Application exit。

Qt Webassembly 搭建过程中遇到的问题_第3张图片

        运行了一个Qt例程,就可以运行,不会一闪而过。对比我的工程和例程,发现main.cpp中的不同

我的代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    w.show();
    return a.exec();
}

例程代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow window;
    ThemeWidget *widget = new ThemeWidget();
    window.setCentralWidget(widget);
    window.resize(900, 600);
    window.show();
    return a.exec();
}

发现其做了一个QMainWindow的外壳,将我的代码参照改成如下:


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MyWidget w;
    QMainWindow window;
    window.setCentralWidget(&w);
    window.resize(900, 600);
    window.show();
    return a.exec();
}

问题解决。

你可能感兴趣的:(Win10,Qt,WebAssembly,qt,开发语言)