web-dev-qa-db-ja.com

Cmakeリンクライブラリターゲットリンクエラー

こんにちは、私はlinkg Glfwとcmakeを使用する他のライブラリに問題があります。コマンドラインから私はこのようにコンパイルします

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

しかし、コンパイルにはcmakeを使用したかったのです。 target_linkg_librariesを使用しようとしましたが、エラーが発生します

CMakeLists.txt:18(target_link_libraries)でのCMakeエラー:これによって構築されていないターゲット「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)
24
Luffy

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})

留意すべき重要な詳細の1つは、target_link_librariesafteradd_executable(またはadd_library)行を配置することです。

54
Zifre