GLUI /usr/bin/ld: 无法找到 -lXmu。

15

我已经下载了最新的GLUI 源代码,现在我正在尝试编译它。但是当我这么做时,我遇到了以下错误:

g++ -O0 -Wall -pedantic -I./ -I./include -I/usr/X11R6/include -o bin/example1 example/example1.cpp  -L./lib -lglui -L/usr/X11R6/lib/libXdmcp.a -lglut -lGLU -lGL -lXmu -lXext -lX11 -lXi -lm
/usr/bin/ld: cannot find -lXmu
collect2: ld returned 1 exit status

当我执行 locate libXmu 命令时,得到以下输出:

> %:~/src/GLUI/src$ locate libXmu 
> /usr/lib/libXmu.so.6
> /usr/lib/libXmu.so.6.2.0
> /usr/lib/libXmuu.so.1
> /usr/lib/libXmuu.so.1.0.0

我是否因为没有/usr/lib/libXmu.so而遇到了错误?如果是这种情况,我该如何创建它?(我对链接一点经验也没有。)

谢谢!

4个回答

7

Linux发行版通常将运行程序所需的库文件和构建程序所需的文件分别打包。

寻找名为*-devel或*-dev的软件包。

我不知道你需要哪个特定的软件包,但是你可以使用apt-cache search来查找它。


4
请执行以下命令安装libxmu-dev和libxmu-headers:sudo apt-get install libxmu-dev libxmu-headers - Salami

6
答案实际上最初是这里的第一个答案,但似乎所有者已将其删除。我通过创建到库的最新版本的符号链接(即/usr/lib/libXmu.so.6)成功编译了代码来解决问题。

4
感谢您的询问。对于我的Ubuntu 12.04 64位系统,我使用以下命令使其正常工作:'sudo ln -s /usr/lib/x86_64-linux-gnu/libXmu.so.6 /usr/lib/libXmu.so'。 - Shervin Emami

0

我曾经有同样的问题,如果创建符号链接无法解决,请尝试以下步骤:

  1. 输出 $PATH(“echo $PATH”),检查所需的库文件是否在其中之一。使用“export PATH=/新添加的路径:$PATH”将新目录添加到检查列表中。
  2. 我一直在包含 libevent,将“-levent”添加到 gcc 命令中,并且 ld 使用了文件 /usr/lib/libevent.so,因此看起来 "lib" 前缀和扩展名是由 ld 自动添加的。

加油!


0

在Ubuntu 22.04中(以及可能的早期版本),软件包libxmu6提供以下文件(其中一个是符号链接):

/usr/lib/x86_64-linux-gnu/libXmu.so.6
/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0

而软件包libxmu-dev提供了以下文件(实际上是符号链接):

/usr/lib/x86_64-linux-gnu/libXmu.so

libXmu.so 符号链接是链接器要查找的内容,如果存在的话。

因此,要通过 apt 安装 libXmu.so 符号链接,请运行以下命令(如上面 @Salami 所述):

sudo apt-get install libxmu-dev libxmu-headers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接