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

2 篇文章 0 订阅
1 篇文章 0 订阅

        参考来源:(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):

3. 修改环境变量后,不再报错。在ui文件中放置了Hello world, 成功打开了网页。如下

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

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

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

        运行了一个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();
}

问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值