Cmake链接库目标链接错误 [英] Cmake link library target link error

查看:1001
本文介绍了Cmake链接库目标链接错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我有问题与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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆