【问题标题】:Issues linking GLUT and QGLViewer链接 GLUT 和 QGLViewer 的问题
【发布时间】:2017-05-07 20:42:10
【问题描述】:

我正在尝试编译 Hernan Badino 的计算机视觉库,名为 QCV,但我遇到了很多与 QGLViewer 库相关的链接问题。 编译器抛出的错误是:

//usr/lib/x86_64-linux-gnu/libQGLViewer.so.2: undefined reference to `gluNewQuadric'
//usr/lib/x86_64-linux-gnu/libQGLViewer.so.2: undefined reference to `gluUnProject'
//usr/lib/x86_64-linux-gnu/libQGLViewer.so.2: undefined reference to `gluCylinder'
//usr/lib/x86_64-linux-gnu/libQGLViewer.so.2: undefined reference to `gluPickMatrix'
//usr/lib/x86_64-linux-gnu/libQGLViewer.so.2: undefined reference to `gluSphere'
//usr/lib/x86_64-linux-gnu/libQGLViewer.so.2: undefined reference to `gluProject'

将相关问题(我想)与 OpenGL/GLUT 库相关联。我正在使用 CMake 进行编译,并且在 CMakeLists.txt 文件中正确请求(并找到了)GLUT 依赖项。 CMake文件的相关部分在这里:

##################################
# OpenGL
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)

target_link_libraries(imgPlayer ${QT_LIBRARIES} 
                                ${OPENGL_LIBRARIES} ${GLUT_LIBRARY}
                                ${QCV_LIB} 
                                ${CMAKE_THREAD_LIBS_INIT} 
                                ${OpenCV_LIBS})

以及“cmake”的输出。是

-- Found Qt4: /usr/bin/qmake-qt4 (found version "4.8.6") 
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so  
-- Found GLUT: /usr/lib/x86_64-linux-gnu/libglut.so  
-- Found OpenCV: /usr/local (found version "3.2.0") 
-- Configuring done
-- Generating done

编译器失败的可能原因是什么?

谢谢!

【问题讨论】:

    标签: c++ opengl qt4 glut


    【解决方案1】:

    GLU 不是 GLUT。缺少的引用来自 GLU 库。在 CMake 中

    target_link_libraries(
        …
        ${OPENGL_glu_LIBRARY}
        …
    );
    

    【讨论】:

    • 感谢您的回复。不幸的是,在 CMakeLists 中添加 ${OPENGL_glu_LIBRARY} 并不能解决问题。 makefile 正确添加了标志 -lGLU 以及所有其他标志(-rdynamic -lQtOpenGL -lQtGui -lQtXml -lQtCore -lGLU -lGL -lglut -lXmu -lXi -lqcv),但链接错误仍然存​​在。
    猜你喜欢
    • 2015-01-06
    • 2014-03-28
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2020-01-12
    相关资源
    最近更新 更多