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

Chr*_*ris 7 c++ opengl glut xcodebuild

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

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

glutDisplayFunc(DisplayCallback)    
glutReshapeFunc(ReshapeCallback)    
glutKeyboardFunc(KeyboardCallback) 
Run Code Online (Sandbox Code Playgroud)

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

关于什么可能出错的任何想法?

Keu*_*eol 35

我有完全相同的错误.

我终于通过更改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.
Run Code Online (Sandbox Code Playgroud)

  • 这是C++类型不匹配问题,可以在其他情况下轻松找到并解决.argv的glutInit()声明意味着argv的内容是可写的,但在main函数中传递给glutInit的argv是只读的,因此是冲突. (3认同)

Tod*_*odd 1

不知道您是否找到了答案,但听起来您还没有将 GLUT 框架添加到您的 Xcode 项目中(假设 Xcode 4.x):

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

单击“将二进制文件与库链接”下的“+”,然后搜索“glut”。

添加该框架。

确保

#import <GLUT/glut.h>
Run Code Online (Sandbox Code Playgroud)

在你的头文件中。