C++ 旧的OPENGL代码,希望使用glPushMatrix()

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

第一个问题

我正在尝试编译一些openGL代码,其中我使用了glPushMatrix

我计划将代码重新格式化为更新的实践,因为glPushMatrix已被弃用,但现在,我想使用openGL、GLU、GLUT的一个版本?这个函数在哪里工作

我当前的cmake文件如下所示

#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