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

当我执行 alocate 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

3 回答 3

7

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

查找名为 *-devel 或 *-dev 的包。

我不知道您特别需要哪一个,但是您可以使用 apt-cache search 来查找它。

于 2010-05-06T00:50:04.480 回答
6

答案实际上是最初的答案之一,但所有者似乎删除了它。我能够通过创建指向最新版本库(即)的符号链接来解决问题,/usr/lib/libXmu.so.6并成功编译代码。

于 2010-05-14T15:22:42.670 回答
0

我遇到了同样的问题,如果创建符号链接没有帮助,请尝试以下操作:

  1. 打印您的 $PATH ("echo $PATH"),并检查您需要的库文件是否在这些目录之一中。使用 "export PATH=/newly/added/path:$PATH" 添加新目录进行检查。
  2. 我一直在包含libevent,在gcc命令中添加了“-levent”,并且ld使用了文件/usr/lib/libevent.so,所以看起来“lib”前缀和扩展名是由ld自动添加的。

保持。

于 2013-10-16T14:49:32.573 回答