首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetBSD:编译cwm后的动态库错误

NetBSD:编译cwm后的动态库错误
EN

Stack Overflow用户
提问于 2014-01-22 16:07:09
回答 1查看 477关注 0票数 2

我编译了原始的cwm tgz包(不是netbsd包)

代码语言:javascript
复制
./configure
make

没有错误。在启动cwm之后

代码语言:javascript
复制
./cwm

误差

代码语言:javascript
复制
Shared object "libX11.so.7" not found

就会出现。ldd的输出是:

代码语言:javascript
复制
    -lXft.2 => /usr/pkg/lib/libXft.so.2
    -lfontconfig.1 => /usr/pkg/lib/libfontconfig.so.1
    -lfreetype.7 => /usr/X11R7/lib/libfreetype.so.7
    -lz.1 => /usr/lib/libz.so.1
    -lgcc_s.1 => /usr/lib/libgcc_s.so.1
    -lc.12 => /usr/lib/libc.so.12
    -lbz2.1 => /usr/lib/libbz2.so.1
    -lexpat.2 => /usr/lib/libexpat.so.2
    -lXrender.2 => /usr/X11R7/lib/libXrender.so.2
    -lXext.7 => /usr/X11R7/lib/libXext.so.7
    -lX11.7 => /usr/X11R7/lib/libX11.so.7
    -lxcb.1 => /usr/X11R7/lib/libxcb.so.1
    -lXau.7 => /usr/X11R7/lib/libXau.so.7
    -lXdmcp.7 => /usr/X11R7/lib/libXdmcp.so.7
    -lX11.7 => not found
    -lXext.7 => not found

其中"not“直接引用cwm二进制文件。它已与命令链接。

代码语言:javascript
复制
gcc -Wall -Icompat -D_REENTRANT -I/usr/pkg/include\
  -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include\
  -I/usr/X11R7/include/freetype2 -I/usr/X11R7/include -g -O2\
  -I/usr/X11R7/include   -o cwm  calmwm.o draw.o screen.o  xmalloc.o\
  client.o grab.o search.o util.o xutil.o conf.o  input.o xevents.o\
  group.o  geographic.o kbfunc.o cursor.o  font.o -L/usr/pkg/lib\
  -Wl,-R/usr/pkg/lib -lXft -L/usr/X11R7/lib -lX11 -lXext

所以链接器应该找到libX11和libXext。

为什么装载机会抱怨?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 19:38:30

明显的部分是-Wl,-R/usr/X11R7/lib'‘在链接时没有包含在加载程序命令行中。

NetBSD的运行时加载程序(/libexec/ld.elf_ so )只有编译好的/lib:/usr/lib‘的运行时库搜索路径,因此任何在搜索路径上需要附加元素的可执行文件都需要在编译时显式地添加它们。(类似于/usr/pkg/lib的条目)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21288007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档