使用 qt 和 opengl 编译 c++ 项目时找不到标识符错误

Posted

技术标签:

【中文标题】使用 qt 和 opengl 编译 c++ 项目时找不到标识符错误【英文标题】:Identifier not found error when compiling a c++ project with qt and opengl 【发布时间】:2013-03-12 14:30:04 【问题描述】:

我正在尝试编译一个使用 QT 和 opengl 的 C++ 程序。

当我尝试编译它时,我收到了这个错误:

 Error  1   error C3861: 'gluErrorString': identifier not found 

寻找这个标识符,告诉我它定义在:glu.h 文件的第 64 行,它是 VS 2012 安装的一部分。

为什么会出现此错误?

我知道源代码是使用VS 2010开发的,但我认为如果我使用VS 2012应该没有任何区别。

我应该对项目设置进行任何更改吗?

【问题讨论】:

@Jaochim - 这不是问题,因为这是编译器错误而不是链接器错误 【参考方案1】:

首先检查您是否有该行:

#include <glu.h>

某处。

未能打开 glu.h 并确保没有阻止包含该行的 #defines。您可能需要为您的项目添加额外的定义。

有时只运行预处理器(不确定如何在 VS 中执行此操作)并确保符号最终出现在您的 cpp 文件中会很有用。

【讨论】:

在 VS 中,您可以打开源文件的属性(通常通过在解决方案视图中右键单击它),转到 C/C++ &gt; Preprocessor &gt; Generate preprocessed file @Angew 生成的文件保存在哪里? @mans 我相信它通常在源文件旁边。它的扩展名是.i【参考方案2】:

添加头文件 glu.h 后,您可能还会收到未解析符号 gluErrorString 的链接错误。您可以通过在项目设置的输入库中添加 glu32.lib 库来解决此问题。

【讨论】:

以上是关于使用 qt 和 opengl 编译 c++ 项目时找不到标识符错误的主要内容,如果未能解决你的问题,请参考以下文章

Linux QT GCC OpenGL GLEW - 向编译器添加参数

在没有 openGL 的情况下使用 Qt

NetBeans 不编译 openGL 项目

不再使用 QT OpenGL?

OpenGL / C++ / Qt - 需要的建议

Qt 项目中对 glew 方法的未定义引用