我的“CMakeList.txt”文件
cmake_minimum_required(VERSION 3.1)
project(butler)
#########################################################
# FIND GLUT
#########################################################
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIRS})
link_directories(${GLUT_LIBRARY_DIRS})
add_definitions(${GLUT_DEFINITIONS})
if(NOT GLUT_FOUND)
message(ERROR " GLUT not found!")
endif(NOT GLUT_FOUND)
#########################################################
# FIND OPENGL
#########################################################
find_package(OpenGL REQUIRED)
include_directories(${OpenGL_INCLUDE_DIRS})
link_directories(${OpenGL_LIBRARY_DIRS})
add_definitions(${OpenGL_DEFINITIONS})
if(NOT OPENGL_FOUND)
message(ERROR " OPENGL not found!")
endif(NOT OPENGL_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(butler ${SOURCE_FILES})
target_link_libraries(butler ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} )
来自互联网的一些例子:
#include <windows.h>
#include <cstdlib>
#include "GL/glut.h"
float clr = 0.2;
void display() {
glClear(GL_COLOR_BUFFER_BIT);
clr += 0.1;
if (clr > 1.0)
clr = 0;
glBegin(GL_POLYGON);
{
glColor3f(clr, clr, clr);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
}
glEnd();
glFlush();
}
// Main execution function
int main(int argc, char *argv[]) {
glutInit(&argc, argv); // Initialize GLUT
glutCreateWindow("win1"); // Create a window 1
glutDisplayFunc(display); // Register display callback
glutCreateWindow("win2"); // Create a window 2
glutDisplayFunc(display); // Register display callback
glutMainLoop(); // Enter main event loop
}
我有错误:“freeglut(/ some / path / to / Debug / butler):无法打开显示''”。我尝试添加带有':0.0'值的DISPLAY变量,但有错误“freeglut(/ some / path / to / Debug / butler):无法打开显示':0.0'”
答案 0 :(得分:3)
在使用Cygwin编译时,你得到的程序是&#34; unix-ish&#34;一种环境。图形由客户端连接到的X服务器完成,图形驱动程序连接到另一端; Cygwin X服务器使用Windows GDI(以及一个非常基线的OpenGL配置文件)作为其后端。错误获取是程序告诉您,它希望能够连接到X服务器,但它无法找到。
当谈到Windows上的OpenGL时,你不应该使用它!
构建程序时使用OpenGL: 不要使用Cygwin工具链!
而是使用针对本机Windows图形API的MinGW工具链;您还需要相关库的相应构建。您可以在Cygwin环境中安装MinGW工具链,但我个人更喜欢自包含的独立安装。
答案 1 :(得分:0)
如果您的主要优先事项是在编译后运行它,而不考虑性能,兼容性或可移植性,则可以运行:
startxwin /some/path/to/Debug/butler
在Cygwin终端中(假设你安装了xinit
Cygwin包,per the documentation)。
这将以“多窗口”模式启动X服务器并运行您的程序。一旦程序退出,它将停止X服务器并清理。