【问题标题】:How to solve: /usr/bin/ld: cannot find -lGL如何解决:/usr/bin/ld: 找不到 -lGL
【发布时间】:2018-01-15 07:22:26
【问题描述】:

我使用 AOSP 构建 Android。
我使用这些命令在我的 Ubuntu 17.04 上构建 Android:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
repo sync -j8
. build/envsetup.sh
lunch
make -j8

30 分钟后出现此错误,有人知道如何解决吗?

host Executable: tblgen (out/host/linux-x86/obj/EXECUTABLES/tblgen_intermediates/tblgen)
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
/usr/bin/ld: cannot find -lGL
/usr/bin/ld: cannot find -lGL
make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] Error 1
make: *** Waiting for unfinished jobs....
collect2: ld returned 1 exit status
collect2: ld returned 1 exit status

【问题讨论】:

标签: makefile ld android-source linker-errors


【解决方案1】:

您似乎没有完全遵循“建立构建环境”的说明。

我看到您正在尝试在 Ubuntu 17 上构建 Android Ice Cream Sandwich (4.0.1) - 请注意,这不是受支持的构建/主机环境,可能无法正常运行。

您的 libx11-dev 和 libgl1-mesa-dev 库(或其他 Ubuntu 17 等效库的名称)似乎配置错​​误或缺失。

我建议安装 Ubuntu 14 并尝试使用 Android L 或 N。

【讨论】:

    【解决方案2】:

    使用这些解决方案将解决问题:

    对于-lGL 错误:

    sudo apt-get install libgl1-mesa-dev:i386
    sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    

    对于-lX11 错误:

    将这一行 LOCAL_LDLIBS += -lX11 添加到文件中 development/tools/emulator/opengl/host/renderer/Android.mk

    更多信息:

    【讨论】:

      【解决方案3】:

      您缺少libGL.so 文件。这是 OpenGL 库。确保您安装了适当的 OpenGL 库,并且它是搜索路径的一部分(请参阅-L 指令)。

      【讨论】:

      • 当我再次使用make -j8 时,它显示相同类型的错误,除了-lGL 它显示-lX11 我该如何解决?
      • 您似乎同时缺少几个库,并且它们根据您的并行构建以随机顺序显示。 X11 是 X 窗口库。我不希望在为 Android 构建时需要它,因为 Android 不使用 X Windowing 系统。很难说真正的根本问题是什么。
      • 我使用这个命令sudo ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /usr/bin/libx11.so,然后我得到这个错误:/usr/bin/ld: out/host/linux-x86/obj/EXECUTABLES/emulator_renderer_intermediates/main.o: undefined reference to symbol 'XInitThreads' //usr/lib/i386-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line collect2: ld returned 1 exit status
      • @shp,尝试使用make showcommands 构建 - 有时它可以给出提示。
      • @Gluttton $ ~/make-3.81/make showcommands make: *** No rule to make target showcommands'。停止。`
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2013-02-08
      • 2021-05-07
      • 2011-07-16
      相关资源
      最近更新 更多