在VS2017平台编译带Qt5库的x86项目

问题遇到的现象和发生背景

VS2017 通过属性配置Qt的库,通过本地的x86编译器编译时,显示“应用程序无法正常启动(0x000007b),请单击“确定”关闭应用程序。”

现在可以确定的是
(1)换成x64的本地编译器,选择链接Qt对应MSVC_x64文件夹中的lib库下的x64版本程序是可以编译运行的,没有问题;
(2)x86本地编译器,编译不含Qt库的程序,也是正常没问题的;

img

操作环境、软件版本等信息

win10;VS2017;Qt5.12.12;

尝试过的解决方法

VS工程文件夹下的,在项目名上右键属性页,修改相应的include包含路径,lib库路径等,没有用

我想要达到的结果

通过VS2017,包含Qt相应模块,通过本地x86编译器,能够成功运行的

检查一下属性页设置的时候的 **配置 **和 **平台 **两个选择是不是和你用的x86是一致的, 有的时候改的的用的不一样

参考GPT和自己的思路,这个错误通常是由于32位应用程序试图加载64位库或者64位应用程序试图加载32位库引起的。在这种情况下,您需要确认您所使用的Qt库是否是x86版本,并且是否与您的x86本地编译器匹配。以下是一些可能的解决方法:

1 确认您所使用的Qt库是x86版本的,并且与您的本地编译器匹配。您可以在Qt安装目录下的MSVC_x86文件夹中找到x86版本的Qt库文件。

2 确认您的本地编译器是32位的,并且与您的Qt库匹配。您可以在VS2017中选择“工具”->“选项”->“项目和解决方案”->“VC++目录”,并确保您的“包含目录”和“库目录”中包含了正确的路径。

3 如果您的Qt库是通过使用不同的编译器或者版本编译的,那么您可能需要重新编译Qt库,以便与您的本地编译器匹配。

4 确认您的系统已经安装了所有必要的依赖项,例如Visual C++ Redistributable和DirectX等。

5 如果您的应用程序依赖于其他第三方库,请确认这些库也是x86版本,并且与您的Qt库和本地编译器匹配。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

程序示例:

cpp
Copy code
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "Hello, world!";
    return a.exec();
}


在VS2017中创建一个新的Qt控制台应用程序项目,将上述代码复制到main.cpp文件中,然后编译和运行该程序即可。
需要注意的是,在VS2017中创建Qt项目时,需要选择包含Qt相应模块,如图所示:
image
此外,还需要在项目属性中配置Qt环境,如图所示:
image
配置完成后,就可以使用本地x86编译器编译和运行Qt程序了。