LINUX.ORG.RU

Как это объяснить?

 ,


0

1

g++ -lGL -lGLEW -lglfw -lpthread temp.cpp

/tmp/ccoXvv4n.o: In function `main':
temp.cpp:(.text+0x10): undefined reference to `glfwInit'
temp.cpp:(.text+0x1f): undefined reference to `glfwWindowHint'
temp.cpp:(.text+0x2e): undefined reference to `glfwWindowHint'
temp.cpp:(.text+0x3d): undefined reference to `glfwWindowHint'
temp.cpp:(.text+0x5e): undefined reference to `glfwCreateWindow'
temp.cpp:(.text+0x94): undefined reference to `glfwMakeContextCurrent'
temp.cpp:(.text+0x9a): undefined reference to `glewExperimental'

ldconfig -p | grep -i "glew\|glfw\|gl.so"

        libglfw.so.3 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libglfw.so.3
        libglfw.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libglfw.so
        libOpenGL.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libOpenGL.so.0
        libOpenGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libOpenGL.so
        libGLEW.so.2.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so.2.0
        libGLEW.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLEW.so
        libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so.1
        libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so

ld --verbose | grep -o "SEARCH_DIR(\"=/usr/lib/x86_64-linux-gnu\")"

SEARCH_DIR("=/usr/lib/x86_64-linux-gnu")

objdump -T /usr/lib/x86_64-linux-gnu/libglfw.so | grep glfwInit

0000000000005b10 g    DF .text  000000000000007f  Base        glfwInit

Если поменять g++ на clang++-8, то всё компилируется

kde neon

Как это объяснить?

Dependency hell.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от yachmenka

man gcc:

-llibrary
-l library
    [...]
    It makes a difference where in the command you write this option; the linker searches and processes libraries and object files in the order they are specified.  Thus, foo.o -lz bar.o searches library z after file foo.o but before bar.o.  If bar.o refers to functions in z, those functions may not be loaded.
xaizek ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.