Cmake链接库目标链接错误 [英] Cmake link library target link error
问题描述
您好我有问题与linkg Glfw和其他库使用cmake。
从命令行编译这样
g ++ main.cpp -lGL -lGLU -lGLEW -lglfw
但我想使用cmake进行编译。我试图使用target_linkg_libraries,但这会产生错误
CMake错误在CMakeLists.txt:18(target_link_libraries):不能
指定链接不是由此
项目构建的目标GL的库。
定义。我不看错误,但这不会链接库。
cmake_minimum_required(VERSION 2.6)
project b
$ b 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)
pre>
您不必添加 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 $ b main.cpp
)
target_link_libraries(test $ {OPENGL_LIBRARIES} $ {GLEW_LIBRARIES})
Hi I have problem with linkg Glfw and other libraries using cmake.
From command line i compile like this
g++ main.cpp -lGL -lGLU -lGLEW -lglfw
But I wanted to use cmake for compiling. I tried to use target_linkg_libraries but this produce error
CMake Error at CMakeLists.txt:18 (target_link_libraries): Cannot
specify link libraries for target "GL" which is not built by this
project.
I tried do this using add definitions. I dont see error but this don't link libraries.
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)
解决方案 The syntax for target_link_libraries
is:
target_link_libraries(your_executable_name libraries_list)
And you don't have to add add_definition
statements (target_link_libraries
adds this options)
There are also some useful variables provided by OpenGL and GLEW packages.
Your CMakeLists.txt should be like:
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})
这篇关于Cmake链接库目标链接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!