1

我正在尝试使用 Qt 5.7 在 Ubuntu 16.04 64 位上编译 Qscintilla 2.9.2 收到以下错误消息:

-L/home/mwambi/Qt5.7.0/5.7/gcc_64/lib -lQt5PrintSupport -L/usr/lib64 -lQt5Widgets -lQt5Gui -lQt5Core -lpthread -lGL  
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
Makefile:979: recipe for target 'libqscintilla2.so.12.0.1' failed
make: *** [libqscintilla2.so.12.0.1] Error 1

我不知道图书馆 GL 是什么以及在哪里可以找到它。我该如何解决这个问题?

4

1 回答 1

2

根据我的经验,这个故障排除过程足以解决编译过程中大约 90% 的缺失库问题:

  1. “-l[name]”意味着有一个“lib[name].so”

  2. 在您的系统中搜索“lib[name]”(使用 locate 或 find)。

    如果您在系统上找到它,请检查路径($LB_LIBRARY_PATH 和构建系统的 -L 标志)并验证体系结构是否匹配(x86+64 与 i686)。

  3. 对“lib[name]”进行存储库搜索(使用 apt、yum、synaptic 等)。

    如果丢失,请安装它。

  4. 在 google 或专门的包搜索站点(如 RPMFind 或 packages.ubuntu.com)中输入“lib[name].so”,然后查看出现的包名称,然后按照 #2-3 进行搜索。

在这种情况下,libGL 是 OpenGL 的实现。您可以安装 Mesa 或找到替代实现(我只使用过 Qt 和 Mesa)。这是提供 libGL 的软件包列表;如果您的系统上已经安装了其中一个,请尝试获取您已经拥有的任何一个的开发版本。

于 2016-06-23T17:24:43.150 回答