我在KDevelop中编码,我设置了我的CMakeLists.txt来包含和链接libGL和freeglut。
然而,它给了我以下错误:
make[2]: *** No rule to make target '/usr/lib/libGL.so', needed by 'opengl'. Stop.
这是我的CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(opengl)
add_executable(opengl main.cpp)
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
include_directories( ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} )
target_link_libraries(opengl ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} )
答案 0 :(得分:0)
首先,我要建议的内容可能取决于CMake版本,但我不认为(我使用的是cmake版本3.1.0)。
查看已安装的FindOpenGL.cmake文件,看起来像target_link_libraries中所需的变量是$ {OPENGL_glu_LIBRARY}。案件确实很重要。
测试像这样的问题的最好方法是使用message(“var:$ {var}”),然后你就可以清楚地看到你的变量在配置期间设置了什么。
希望这有帮助!
仅供参考,我在我的linux机器上找到$ {cmake_install_dir} / Modules / Find *中的find模块,其中cmake_install_dir = / usr / share / cmake。
编辑** 对不起,今天早上累了,错过了你想要的GLUT,而不是GLU。有一个FindGLUT.cmake模块。你应该调用find_package(GLUT REQUIRED)并使用$ {GLUT_LIBRARIES}和$ {GLUT_INCLUDE_DIR}。对此感到抱歉!