我对 Qt 相当陌生,并且在为我的应用程序构建独立的可执行文件时遇到了麻烦。它有 OpenGL 小部件,我使用了 glut32 库。问题是我在调试模式下一直很好,但是按照这里给出的步骤操作:
在发布模式下构建它时会出错:
" 对 ___glutInitWithExit 的未定义引用"
这是完全相同的代码。我不明白为什么它在发布时遇到问题。
我提前感谢任何帮助我构建独立可执行文件的提示。
对于静态单个可执行文件,您首先需要 QT 的商业许可证。话虽这么说,您可以更改 $QTDIR\mkspecs\$COMPILEVERSION\qmake.conf 中的 mkspecs 以使用静态链接。例如 win32-msvc2008 (2008 Visual Studio Compiler) 设置 CFLAGS 和 CXXFLAGS 从
QMAKE_CFLAGS_RELEASE = -O2 -MD
至
QMAKE_CFLAGS_RELEASE = -O2 -MT
(MD => MT,MDd => MTd)。此外,您将使用 QT 和 GLUT 的静态库。这些通常以 .lib(而不是 .dll)结尾。您可能需要从 Source 编译 QT 以获得静态兼容库。编译 QT 时记得使用 opengl 支持进行编译。在http://qt-project.org/wiki/Build_Static_Qt_For_Windows_With_Gcc_German上有一个很好的 gcc 文档,您还可以找到 MSVC 的示例。
满足这些先决条件后,您仍然需要在 Application-pro-file 中进行设置
CONFIG += static
并包含您的库:
LIBS += -Lpath/to/glutlib -lglut