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

时间:2014-06-16 07:53:15

标签: c++ qt opengl linker

在晚上尝试正确构建Qt之后,我用:

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

mkspecs \ win32-msvc2013 \ qmake.conf中的

/MT, MTd个标志
但它对我帮助不大。

我正在使用VS2013 Pro,带有QT插件1.2.3,当我尝试编译插件模板时,我收到了55个未解决的外部错误,其中大部分来自OpenGL,所以我将opengl32.lib添加到链接器,错误数量减少到42,但仍然大部分来自OpenGL。像GLU32或Qt5OpenGL这样的Libs根本没有帮助我。

以下是链接器中未解决的外部符号错误:

_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)

对我而言,这很奇怪,因为这些错误来自核心gl lib,它是链接的:

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

有谁知道如何修复它?

2 个答案:

答案 0 :(得分:0)

您能否告诉我们您从Qt website下载了哪个Qt版本?

另外,你必须要小心,因为默认情况下Qt不是与openGL捆绑在一起,你必须下载正确的版本(显然是名字中带有openGL的版本)

希望它有所帮助!

答案 1 :(得分:0)

您可以尝试以下库:

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

这对我有用:https://stackoverflow.com/a/27807379/4415923