CMake不想与libGL.so链接

时间:2015-03-07 20:18:45

标签: opengl cmake kdevelop

我在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} )

1 个答案:

答案 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}。对此感到抱歉!