编译在Mac OS X中使用OpenGl的C程序

Thi*_* G. 9 c opengl macos gcc

我正在尝试为我的CS类编译一个C程序.我的Mac上安装了命令行工具,所以我可能有OpenGL.程序描述是为Ubuntu制作的,它说我可以使用以下方法编译:

gcc -Wall -ansi -pedantic -O2 main.o graphic.o imagem.o io.o -o ep2 -lGL -lGLU -lglut
Run Code Online (Sandbox Code Playgroud)

我跑了,它说:

ld: library not found for -lGL
Run Code Online (Sandbox Code Playgroud)

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

dat*_*olf 17

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

gcc -Wall -ansi -pedantic -O2 \
    main.o graphic.o imagem.o io.o \
    -o ep2 \
    -framework OpenGL -lGLU -lglut
Run Code Online (Sandbox Code Playgroud)

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

  • @ThiG.:你不在MacOS X上使用`-lGL`.你在那里使用OpenGL框架.哦,在源代码中你可能需要用`#include <OpenGL/gl.h>`替换`#include <GL/gl.h>`.苹果强烈患有*这里没有发明*综合症. (3认同)

Mik*_*Lee 7

我发现你必须使用

-framework OpenGL -framework GLUT
Run Code Online (Sandbox Code Playgroud)

参考