CMake 链接 OpenGL 和 GLUT 库

Ben*_*der 5 opengl glut cmake

我编写了 C++ 项目,其中使用 OpenGL 和 Glut 库。

当我从命令行编译它时,一切正常。这是样本。

g++ -o prog source.cpp -lGL -lGLU -lglut --std=c++11 -L /usr/lib/nvidia-331/
Run Code Online (Sandbox Code Playgroud)

但是当我想在 QtCreator 中使用 CMake 时:

project(proj)
cmake_minimum_required(VERSION 2.8)

aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lGL -lGLU -lglut -L /usr/lib/nvidia-331/") 
Run Code Online (Sandbox Code Playgroud)

我收到消息:错误:对“glColor3f”的未定义引用等等。

有谁能够帮助我?

dat*_*olf 5

project(proj)
cmake_minimum_required(VERSION 2.8)

find_package(OpenGL)
find_package(GLUT)

aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(
    ${PROJECT_NAME}
    ${OPENGL_gl_LIBRARY}
    ${GLUT_LIBRARIES} )
Run Code Online (Sandbox Code Playgroud)

注意:您不应使用可执行文件的项目名称

  • @Bender:请与我交谈:**“我永远不会使用绝对或非默认路径链接到 libGL.so!”** 如果您无法在系统上正确链接 libGL.so,则应该修复*那*。我不太确定您对 `aux_source_directory` 的使用是否有效或合理。但 CMake 的其余部分是我直接从我自己的 OpenGL 项目之一获取的,因此在正确配置的系统上它应该可以工作。 (2认同)