您好我使用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)
答案 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
。