在MacOSX中编译使用OpenGl的C程序

在MacOSX中编译使用OpenGl的C程序,c,macos,opengl,gcc,C,Macos,Opengl,Gcc,我正试图为我的CS类编译一个C程序。我的Mac上安装了命令行工具,所以我可能有OpenGL。程序描述是为Ubuntu编写的,上面说我可以使用: gcc -Wall -ansi -pedantic -O2 main.o graphic.o imagem.o io.o -o ep2 -lGL -lGLU -lglut 我运行它,它说: ld: library not found for -lGL 我应该使用什么标志?我该怎么办?在MacOS X中,您使用的不是库来包含系统级API,而是框架。编译

我正试图为我的CS类编译一个C程序。我的Mac上安装了命令行工具,所以我可能有OpenGL。程序描述是为Ubuntu编写的,上面说我可以使用:

gcc -Wall -ansi -pedantic -O2 main.o graphic.o imagem.o io.o -o ep2 -lGL -lGLU -lglut
我运行它,它说:

ld: library not found for -lGL

我应该使用什么标志?我该怎么办?

在MacOS X中,您使用的不是库来包含系统级API,而是框架。编译此程序的正确命令行是

gcc -Wall -ansi -pedantic -O2 \
    main.o graphic.o imagem.o io.o \
    -o ep2 \
    -framework OpenGL -lGLU -lglut

请注意,GLU可能也是OpenGL框架的一部分。而且可能需要先安装GLUT。

我发现您必须使用

-framework OpenGL -framework GLUT

你真的需要所有的
-lGL-lGLU-lglut
?@东西:你在MacOS X上不使用
-lGL
。你在那里使用OpenGL框架。哦,在源代码中,您可能需要将
#include
替换为
#include
。苹果深受“非发明于此”综合症之苦。+1-我要补充的是,如果OP不幸需要的话,也有一个可用的过剩框架。我不知道它是否与核心配置文件配合良好。@datenwolf-Thks回答。尽管我尝试了您所说的方法,但它返回了
ld:library not found for-lGLU
。有什么想法吗?@ThiG。GLU是OSX上OpenGL框架的一部分。
#在源代码中包含
,在Makefile中包含-框架OpenGL,这些都是您使用它所需要的。同样,存在一个过剩框架;在OS X上使用
#include
-framework GLUT
。确保使用类似于
#ifdef(苹果)(苹果)(苹果)的
(代码)在决定如何
(包括
标题时,世界其他地方都倾向于遵循惯例:
:)@Bilow:(通过
-lGL
链接)是X11/GLX执行路径所需的接口库。因此,在典型的macOS系统上,两个库都可以找到,但只有一个(OpenGL框架中的一个)可以通过本机GUI系统工作。