XCode项目无法识别某些GLUT命令

时间:2011-11-15 21:38:10

标签: c++ opengl glut xcodebuild

我正在XCode 4中创建一个GLUT / OpenGL项目。我添加了glut / opengl框架,将我的所有库链接在一起 - 一切都很好,除了某些原因我的main()函数不接受glutInit (& argc,argv)并给出了错误消息“没有匹配的函数调用glutInit()。但奇怪的是,它接受了一些其他的过剩函数,如glutInitDisplayMode()和glutCreateWindow()但不是glutInit()。

另外,我正在使用3个回调函数

glutDisplayFunc(DisplayCallback)    
glutReshapeFunc(ReshapeCallback)    
glutKeyboardFunc(KeyboardCallback) 

我的项目只接受第一个,但不识别其他两个,给出与glutInit()相同的错误。

关于可能出现什么问题的任何想法?

3 个答案:

答案 0 :(得分:34)

我有完全相同的错误。

我最终通过更改main()函数的参数来解决问题。

查看argv是否声明为const。 从main函数参数中删除它会导致glutInit错误消失。

// delete const from argv declaration 
int main(int argc, const char * argv[]) // from this,
int main(int argc, char * argv[])       // to this.

答案 1 :(得分:2)

根据我的拙见,最好const_cast输入参数以避免C ++中的类型不匹配,请看下面的代码片段:

glutInit(&argc, const_cast<char**>(argv));

通过这种方式,您向计划的未来读者表明,您知道argv是一个常数,而const_cast - 您知道自己在做什么。

答案 2 :(得分:1)

Dunno如果你找到了答案,但听起来你没有将GLUT框架添加到你的Xcode项目中(假设是Xcode 4.x):

单击主窗口侧栏中最顶部的项目图标。

点击“Link Binary With Libraries”下的“+”并搜索“过剩”。

添加该框架。

确保

#import <GLUT/glut.h>

在您的标头文件中。