在MacOSX中编译使用OpenGl的C程序
我正试图为我的CS类编译一个C程序。我的Mac上安装了命令行工具,所以我可能有OpenGL。程序描述是为Ubuntu编写的,上面说我可以使用:在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,而是框架。编译
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系统工作。