gpt4 book ai didi

c - NetBSD: 编译 cwm 后动态库错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:28:22 24 4
gpt4 key购买 nike

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

./configure
make

可以正常工作。用

开始cwm后
./cwm

错误

Shared object "libX11.so.7" not found

出现。 ldd 输出是:

    -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

“未找到”直接指的是 cwm 二进制文件。已经用命令链接了

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。

加载器为什么会报错?

最佳答案

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

NetBSD 的运行时加载器 (/libexec/ld.elf_so) 只有 ``/lib:/usr/lib'' 的运行时库搜索路径被编译进去,所以任何需要在搜索路径上添加额外元素的可执行文件都需要显式添加他们在编译时。 (就像/usr/pkg/lib 的条目。)

关于c - NetBSD: 编译 cwm 后动态库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21288007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com