2017-05-07 38 views
0

我想編譯一個由Hernan Badino編寫的計算機視覺庫,名字爲QCV,但我有很多與QGLViewer庫有關的鏈接問題。 編譯器拋出的錯誤是:連接GLUT和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 

編譯器失敗的可能原因是什麼?

謝謝!

回答

0

GLU不是GLUT。缺少的參考文獻來自GLU圖書館。在CMake中

target_link_libraries(
    … 
    ${OPENGL_glu_LIBRARY} 
    … 
); 
+0

謝謝您的回覆。不幸的是,在CMakeLists中添加$ {OPENGL_glu_LIBRARY}不能解決問題。生成文件正確地添加了標誌-lGLU與其他所有其他標誌(-rdynamic -lQtOpenGL -lQtGui -lQtXml -lQtCore ** - lGLU ** -lGL -lglut -lXmu -lXi -lqcv),但鏈接錯誤仍然存​​在。 –