Cmake链接库目标链接错误

时间:2013-10-20 13:45:54

标签: c++ opengl cmake glut glew

您好我使用cmake链接Glfw和其他库有问题。 从命令行我编译如下

g++ main.cpp -lGL -lGLU -lGLEW -lglfw

但我想用cmake进行编译。我尝试使用target_linkg_libraries,但这会产生错误

  

CMakeLists.txt上的CMake错误:18(target_link_libraries):不能   指定目标“GL”的链接库,该链接库不是由此构建的   项目

我尝试使用添加定义来执行此操作。我没有看到错误,但这不链接库。

cmake_minimum_required (VERSION 2.6)
project (test)

find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)

ADD_DEFINITIONS(
    -lGL
    -lGLU
    -lGLEW
    -lglfw
)

add_executable(test.out
    main.cpp
)

target_link_libraries(GL GLU GLEW glfw)

1 个答案:

答案 0 :(得分:49)

target_link_libraries的语法是:

target_link_libraries(your_executable_name libraries_list)

您无需添加add_definition语句(target_link_libraries添加此选项)

OpenGL和GLEW包也提供了一些有用的变量。

你的CMakeLists.txt应该是:

cmake_minimum_required (VERSION 2.6)
project (test)

find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)

include_directories(${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})

add_executable(test
    main.cpp
)

target_link_libraries(test ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES})

要记住的一个重要细节是在target_link_libraries(或add_executable)行之后放置add_library