静态Qt程序在VS2013中构建-许多未解决的外部

Static Qt program build in VS2013 - a lot of unresolved externals

本文关键字:许多 未解决 外部 构建 Qt 程序 VS2013 静态      更新时间:2023-10-16

经过几个晚上的努力,最后我用:

configure -static -debug-and-release -developer-build -mp -opengl desktop -platform win32-msvc2013 -no-webkit -qt-zlib

mkspecswin32-msvc2013qmake.conf中的/MT, MTd标志
但这对我帮助不大。

我使用VS2013 Pro, QT插件1.2.3,当我试图编译插件模板时,我收到了55个未解决的外部错误,其中大多数来自OpenGL,所以我添加了opengl32。库到链接器,错误数减少到42,但仍然大部分来自OpenGL。像GLU32或Qt5OpenGL这样的库根本帮不了我。

下面是一些链接器无法解决的外部符号错误:

_WSAAsyncSelect@16 referenced in function "private: void __thiscall QEventDispatcherWin32::createInternalHwnd(void)" (?createInternalHwnd@QEventDispatcherWin32@@AAEXXZ)
_glBindBuffer@8 referenced in function "public: bool __thiscall QOpenGLBuffer::bind(void)" (?bind@QOpenGLBuffer@@QAE_NXZ)
_glCompileShader@4 referenced in function "public: bool __thiscall QOpenGLShaderPrivate::compile(class QOpenGLShader *)" (?compile@QOpenGLShaderPrivate@@QAE_NPAVQOpenGLShader@@@Z)
_glUniform4fv@12 referenced in function "public: void __thiscall QOpenGLFunctions::glUniform4fv(int,int,float const *)" (?glUniform4fv@QOpenGLFunctions@@QAEXHHPBM@Z)

对我来说很奇怪,因为这些错误来自core gl库,链接为:

qtmain.lib
Qt5Core.lib
Qt5Gui.lib
Qt5Widgets.lib
opengl32.lib

有谁知道怎么修理它吗?

你能告诉我们你从Qt网站下载了哪个Qt版本吗?

另外,你必须小心,因为Qt默认不与openGL捆绑在一起,你必须下载合适的版本(名称中明显带有openGL)

希望有帮助!

您可以尝试以下库:

imm32.lib winmm.lib Ws2_32.lib qtharfbuzzng.lib

这个为我工作:https://stackoverflow.com/a/27807379/4415923