配完openCV配openGL,历史真是惊人的相似……CodeLite的OpenCV环境配置
mac系统自带OpenGL,本来想用glut,然而编译报错说glut已经被osx10.9的系统弃用了。搜索了一下,推荐较多的是glfw,看了下代码也和glut差不多。
首先,为了预防日后不时之需,先存一下网上找的glut版本的代码:
#include
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
glFlush();
}
int main(int argc, char ** argv)
{
glutInit(&argc, argv);
glutCreateWindow("Glut Demo");
glutDisplayFunc(display);
glutMainLoop();
}
接下来是glfw的配置。
brew install glfw
#include
int main(int argc, char ** argv)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(480, 320, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Draw a triangle */
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0); // Red
glVertex3f(0.0, 1.0, 0.0);
glColor3f(0.0, 1.0, 0.0); // Green
glVertex3f(-1.0, -1.0, 0.0);
glColor3f(0.0, 0.0, 1.0); // Blue
glVertex3f(1.0, -1.0, 0.0);
glEnd();
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
编译选项
gcc main.c -framework OpenGL -I/usr/local/include/ -L/usr/local/lib/ -lglfw
有四项必须的内容:
-framework用来链接mac自带的OpenGL
-I的路径为头文件目录(I即为Include的缩写)
-L的路径为动态链接库目录(L即为Linker的缩写)
-lxxx表示链接libxxx.dylib的文件,比如libglfw.dylib,就写-lglfw
Codelite的设置
在IDE里进行compiler和linker的相应设置。依然坚持不用Xcode,用的是CodeLite。
右键某个project,点击settings,如图。
编译器头文件设置(即-I),在Include Paths一栏添加路径↓
链接库设置(-L,-l和-framework),更改的是第2、3、4栏↓