当前位置:  开发笔记 > 编程语言 > 正文

OpenGL包含OS X的指令

如何解决《OpenGL包含OSX的指令》经验,为你挑选了1个好方法。

我有点困惑为什么这个代码编译.我省略了"必要的" #include ,程序仍然可以编译.当我的程序从GL库中调用函数而不包括它们时,这怎么可能.

int main(int argc, char** argv)
{

    glClearColor(1.0,1.0,1.0,1.0);
    return 0;
}

我使用这个编译命令:

 gcc -framework GLUT -framework OpenGL test.c

我假设添加-framework只是指定了库所在的链接器,但我还以为我还需要头文件?



1> Jason Coco..:

glClearColor不是宏,因此您不需要标头来定义它.如果添加警告:

gcc -o test -Wall -W test.c -framework GLUT -framework OpenGL

然后你会得到关于glClearColor的隐式声明的警告.您也将无法使用任何宏,因为编译器会给您一个未定义的错误.由于glClearColor符号由链接器正确解析,因此您永远不会收到错误.

我也想到你可能一直在想这个,因为你以为你在编译C++.您提供的示例实际上编译了C代码,其中未能声明函数原型并不是错误.如果您打算将其编译为C++代码,则需要以下命令行:

g ++ -o test test.cpp -framework OpenGL

在这种情况下,你肯定会因为不包括gl.h而出错,你的代码将无法编译.从命令行执行GCC时,g ++是C++编译器,而gcc是通用C编译器.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有