gpt4 book ai didi

c++ - Qt 无法与 g++ 链接

转载 作者:行者123 更新时间:2023-11-28 05:13:47 24 4
gpt4 key购买 nike

大家好,第一次来这里提问

我正在尝试用 g++ 编译简单的 Qt c++ 代码,但每次它都会给我:

C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text+0x32): undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text+0x6e): undefined reference to `_imp___ZN11QPushButtonC1ERK7QStringP7QWidget'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text+0xa6): undefined reference to `_imp___ZN7QWidget4showEv'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text+0xad): undefined reference to `_imp___ZN12QApplication4execEv'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text+0xbb): undefined reference to `_imp___ZN12QApplicationD1Ev'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text+0xe9): undefined reference to `_imp___ZN12QApplicationD1Ev'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text$_ZN7QStringC1EPKc[__ZN7QStringC1EPKc]+0x2c): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text$_ZN7QWidget6resizeEii[__ZN7QWidget6resizeEii]+0x2f): undefined reference to `_imp___ZN7QWidget6resizeERK5QSize'
C:\Users\ctw\AppData\Local\Temp\ccrszXqF.o:main.cpp:(.text$_ZN15QTypedArrayDataItE10deallocateEP10QArrayData[__ZN15QTypedArrayDataItE10deallocateEP10QArrayData]+0x1d): undefined reference to `_imp___ZN10QArrayData10deallocateEPS_jj'

编译命令为:

g++ -o main.exe  main.cpp C:\Qt_\5.0.2\msvc2010\lib\Qt5Core.lib C:\Qt_\5.0.2\msvc2010\lib\Qt5Core.lib

我尝试编译的代码是:

#include <QtWidgets/qapplication.h>
#include <QtWidgets/qpushbutton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *hello = new QPushButton("This is a simple button");
hello->resize(100, 30);
hello->show();
return app.exec();
}

g++的版本是:

g++ (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我正在使用 Qt 5.0.2 32 位。我是 C++ 的初学者,我尝试解决这个问题大约一个星期。谁能告诉我应该怎么做才能编译成功?

最佳答案

除非你有理由不升级你的 Qt 安装,否则请升级,5.0.2 真的很旧而且有问题,我们现在是 5.8 版本。现在,针对您的问题:

您正在尝试使用不同的编译器编译应用程序,看,您的 Qt 是使用 Visual Studio 编译的(您可以通过您尝试手动链接的库的路径来判断这一点)。

另一件事,Qt 文件在被发送到编译器之前通常会进入预处理状态,我知道您的特定代码还没有这个错误,但是一旦您增加你会遇到的代码大小,所以使用一个了解 Qt 内部知识的项目经理,比如 qmake、qbs 或 CMake(我更喜欢后者),这将选择正确的 Qt 工具包并在编译你的应用程序之前运行 moc。

最后一点,如果你用的是visual studio版的Qt,你需要用cl编译器编译,而不是用Gcc。如果您下载 Qt Installer,它会询问您是否有 mingw 版本(g++ 附带)或 visual studio 版本。

关于c++ - Qt 无法与 g++ 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43065698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com