【问题标题】:glfw3 error: DSO Missing from command lineglfw3 错误:命令行中缺少 DSO
【发布时间】:2016-02-18 06:56:05
【问题描述】:

我最近不得不在我的 PC 上重新安装 Linux Mint。我重新安装了所有库,例如 GLFW,遇到了一个我以前从未见过的错误。不幸的是,我的 google-fu 技能似乎没有达到这个错误的标准,因为我无法找到任何适合我的修复程序。旁注:这些程序在我的旧安装上编译得很好,它们在我也运行 Linux Mint 17.2 的笔记本电脑上也编译得很好。

这是我用来编译的编译语句:

g++ -std=c++11 main.cpp -o out -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi

这是终端向我吐出的:

/usr/bin/ld: //usr/local/lib/libglfw3.a(glx_context.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libdl.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

编辑: 我已重新安装 Mint 两次以尝试解决此问题。每次都会出现。

【问题讨论】:

    标签: c++ linux glfw


    【解决方案1】:

    看起来缺少的符号来自libdl

    作为额外的奖励,我将给你一个 Makefile。记得用制表符缩进,而不是空格,否则 Makefile 将无法工作。

    all: out
    clean:
            rm -f out *.o
    .PHONY: all clean
    
    CXX = g++
    CPPFLAGS =
    CXXFLAGS = -std=c++11 -Wall -Wextra -g
    LIBS = -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -pthread -lXi -ldl
    LDFLAGS =
    
    out: main.o
            $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS)
    

    但是,如果您使用pkg-config,会容易得多。我不知道正确的命令(我现在不在 Linux 上,所以我无法检查),但它看起来像这样:

    packages = glfw3
    CPPFLAGS := $(shell pkg-config --cflags $(packages))
    LIBS := $(shell pkg-config --libs $(packages))
    

    这样您甚至不必知道您需要-ldl,因为pkg-config 会为您解决。这是做事的标准方式。

    尝试自己运行pkg-config --libs glfw3 以查看输出。如果没有安装,运行sudo apt-get install pkg-config

    【讨论】:

      【解决方案2】:

      我只是想为像我这样经验不足的程序员简化 Dietrich Epp 的答案:

      要解决此问题,请通过编译器方法所需的任何方式链接 libdl 库。如果使用命令行(gcc):将“-ldl”添加到链接命令中,以便上面 DavidBittner 的原始链接命令变为:

      g++ -std=c++11 main.cpp -o out -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi -ldl
      

      注意末尾添加的“-ldl”。

      如果您使用的是 Cmake,请将“dl”添加到附加库列表中。

      【讨论】:

        猜你喜欢
        • 2016-01-20
        • 2019-01-12
        • 2021-03-23
        • 1970-01-01
        • 2016-11-17
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多