C++ 旧的OPENGL代码,希望使用glPushMatrix()
第一个问题 我正在尝试编译一些openGL代码,其中我使用了glPushMatrix 我计划将代码重新格式化为更新的实践,因为glPushMatrix已被弃用,但现在,我想使用openGL、GLU、GLUT的一个版本?这个函数在哪里工作 我当前的cmake文件如下所示C++ 旧的OPENGL代码,希望使用glPushMatrix(),c++,opengl,build,cmake,libraries,C++,Opengl,Build,Cmake,Libraries,第一个问题 我正在尝试编译一些openGL代码,其中我使用了glPushMatrix 我计划将代码重新格式化为更新的实践,因为glPushMatrix已被弃用,但现在,我想使用openGL、GLU、GLUT的一个版本?这个函数在哪里工作 我当前的cmake文件如下所示 #CMakeLists.txt cmake_minimum_required (VERSION 2.6) project (PROJECTOR) set( PROJECTOR_VERSION_MAJOR 0) set( PR
#CMakeLists.txt
cmake_minimum_required (VERSION 2.6)
project (PROJECTOR)
set( PROJECTOR_VERSION_MAJOR 0)
set( PROJECTOR_VERSION_MINOR 1)
add_executable( Projector.run /*...buncha files */ )
find_package(Boost)
include_directories(${Boost_INCLUDE_DIRS})
find_package(ImageMagick COMPONENTS Magick++)
include_directories(${ImageMagick_INCLUDE_DIRS})
# TODO - this doesn't rollback versions. It just sets a min version requirement.
# I'd like to roll back the versions.
find_package(OpenGL 2.0)
include_directories(${OpenGL_INCLUDE_DIRS})
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIRS})
find_package(GLU)
include_directories(${GLUE_INCLUDE_DIRS})
target_link_libraries(Projector.run ${ImageMagick_LIBRARIES})
target_link_libraries(Projector.run ${Boost_LIBRARIES})
target_link_libraries(Projector.run ${GLU_LIBRARIES})
target_link_libraries(Projector.run ${OpenGL_LIBRARIES})
target_link_libraries(Projector.run ${GLUT_LIBRARIES})
#
这是错误输出:
这是一段代码片段:
我应该添加什么以便我的程序生成?使用-lGL标志编译以包含库:
g++ -o main main.cpp -Wall -std=c++11 -lglut -lGL
你能分享错误信息吗?嗯,你没有明确地说它失败了,但我想如果它成功了,你不会在这里发帖的;构建设置与创建OpenGL上下文无关。上下文是在运行时创建的,因此我们需要查看创建它的代码。如果你没有要求一个核心概要文件,那么你可能会得到一个包含glPushMatrix的兼容性上下文!这有帮助吗?看起来OpenGL没有链接到您的程序。它仍然在链接,我只是不知道如何链接到以前的版本。
...
glPushMatrix();
int img_height,img_width = 3;
int row,col = 0;
for(col = 0; col < img_height; col++ )
{
for(row = 0; row < img_width; row++){
glTranslatef(CUBE_DIMEN,0.0f,0.0f);
glColor3f(r_comp,g_comp,b_comp);
glutSolidCube(CUBE_DIMEN);
}
glTranslatef(-1 * img_width * CUBE_DIMEN, -CUBE_DIMEN, 0.0f);
}
glPopMatrix();
...
g++ -o main main.cpp -Wall -std=c++11 -lglut -lGL