嗨我有链接Glfw和其他库使用cmake的问题。从命令行我编译如下
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)
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
)线之后。