Ich lerne Opengl, indem ich dem Tutorial unter folge https://learnopengl.com/
und ich habe Probleme beim Einrichten der Abhängigkeit mit cmake(Siehe Erstellen eines Fensters).
Ich habe meine CMakeLists.txt auf der Grundlage von GLFW-Dokumentation.
cmake_minimum_required(VERSION 3.14)
project(openglTuto)
include_directories(include)
add_executable(gltuto src/main.c src/glad.c)
find_package(glfw3 3.3 REQUIRED)
find_package(OpenGL REQUIRED)
target_link_libraries(gltuto glfw)
target_include_directories(gltuto PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(gltuto ${OPENGL_gl_LIBRARY})
CMake kann meine Konfiguration erfolgreich erstellen, aber Ninja kann einen Fehler nicht kompilieren und drucken.
[1/1] Verlinkung der ausführbaren C-Datei gltuto
FEHLGESCHLAGEN: gltuto : && /usr/bin/cc CMakeFiles/gltuto.dir/src/main.co CMakeFiles/gltuto.dir/src/glad.co -o gltuto /usr/lib/libglfw.so.3.3 && :
/usr/bin/ld: CMakeFiles/gltuto.dir/src/glad.co: undefinierter Verweis auf Symbol „dlclose@@GLIBC_2.2.5“
/usr/bin/ld: /usr/lib/libdl.so.2: Fehler beim Hinzufügen von Symbolen: DSO fehlt in der Befehlszeile
collect2: Fehler: ld hat 1 Exit-Status zurückgegeben
ninja: Build gestoppt: Unterbefehl fehlgeschlagen.
DSO missing from command line
ist ziemlich offensichtlich, müssen Sie hinzufügen-ldl
. Obwohl dieser Linker-Aufruf in erster Linie wirklich seltsam ist, was mit der Übergabe absoluter Pfade an Bibliotheken zu tun hat.– o11c
1. Juli 2019 um 20:29 Uhr