Qt 创造者。为啥我在编译发布版本时收到有关 glut 的错误,但没有调试?

Posted

技术标签:

【中文标题】Qt 创造者。为啥我在编译发布版本时收到有关 glut 的错误,但没有调试?【英文标题】:Qt Creator. Why do I get an error about glut when compiling release version, but not debug?Qt 创造者。为什么我在编译发布版本时收到有关 glut 的错误,但没有调试? 【发布时间】:2013-07-04 22:30:43 【问题描述】:

我对 Qt 比较陌生,并且在为我的应用程序构建独立的可执行文件时遇到了麻烦。 它有 OpenGL 小部件,我使用了 glut32 库。 问题是我在调试模式下一直很好,但是按照这里给出的步骤:

How to create executable file for a Qt Application?

在发布模式下编译时报错:

"对 ___glutInitWithExit 的未定义引用"

这是相同的代码。我不明白为什么它在发布时遇到问题。

我提前感谢任何帮助我构建独立可执行文件的提示。

【问题讨论】:

表示需要链接GLUT库。我不知道 Qt Creator,但例如在 Visual Studio 中,Debug 和 Release 版本有单独的链接器配置。 【参考方案1】:

对于静态单个可执行文件,您首先需要 QT 的商业许可证。话虽这么说,您可以更改 $QTDIR\mkspecs\$COMPILEVERSION\qmake.conf 中的 mkspecs 以使用静态链接。例如 win32-msvc2008 (2008 Visual Studio Compiler) 设置 CFLAGS 和 CXXFLAGS from

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

【讨论】:

以上是关于Qt 创造者。为啥我在编译发布版本时收到有关 glut 的错误,但没有调试?的主要内容,如果未能解决你的问题,请参考以下文章

Qt编译错误“GL/gl.h:No such file or directory”的解决方法

为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?

为啥我在第二次运行测试时在 Mongoose 中收到错误“一旦编译后无法覆盖模型”?

为啥我的 Qt 应用程序在执行时不显示 GUI?

为啥我在使用 ActionBar Sherlock 和旧版 android 版本时在 onCreate() 处收到错误? [关闭]

OpenGL着色器版本编译错误