首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X11链接问题可能与musl相关

X11链接问题可能与musl相关
EN

Stack Overflow用户
提问于 2020-10-08 09:42:23
回答 1查看 520关注 0票数 0

我正在运行阿尔卑斯Linux,并试图安装musl libc

https://github.com/patrickhaller/no-wm/

与-

make install

我安装了musl和libx11-dev。

lib 11-dev将库放在/usr/lib中,而不是/usr/X11/lib中。见-

https://pkgs.alpinelinux.org/contents?branch=edge&name=libx11-dev&arch=x86&repo=main

所以我把Makefile行改为-

X11LIB = -lX11 -L/usr/lib/

我确认that 11是在那个目录位置。

但是我的安装仍然失败了这个输出-

代码语言:javascript
复制
$ make install
gcc -O2 -Wall -std=c99 -pedantic -lX11 -L/usr/lib/ x-alt-tab-mru.c -o x-alt-tab-mru
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /tmp/cckobJdo.o: in function `x_alt_tab':
x-alt-tab-mru.c:(.text+0x70): undefined reference to `XGetWMHints'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text+0x84): undefined reference to `XGetWindowAttributes'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text+0xec): undefined reference to `XLowerWindow'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text+0xf8): undefined reference to `XRaiseWindow'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text+0x10c): undefined reference to `XSetInputFocus'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text+0x11c): undefined reference to `XRestackWindows'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text+0x128): undefined reference to `XSync'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: /tmp/cckobJdo.o: in function `main':
x-alt-tab-mru.c:(.text.startup+0x34): undefined reference to `XOpenDisplay'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text.startup+0x44): undefined reference to `XSync'
/usr/lib/gcc/aarch64-alpine-linux-musl/10.2.0/../../../../aarch64-alpine-linux-musl/bin/ld: x-alt-tab-mru.c:(.text.startup+0x70): undefined reference to `XQueryTree'
collect2: error: ld returned 1 exit status
make: *** [Makefile:19: x-alt-tab-mru] Error 1

我已经确认了x mru.c文件中的标头位于正确的位置,并且包含在libx11-dev中。

接下来我能做些什么来排除这些问题并让它编译呢?我已经找到了我能想到的一切..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-08 18:05:15

链接命令行上的参数顺序非常重要。-L选项仅适用于对命令行后面指定的库的搜索,并且,至少对于静态链接,链接对象中的未定义符号仅针对命令行后面指定的其他对象进行解析。在链接共享库时,行为可能(或不)有所不同,但是为了安全起见,您应该始终根据对象的依赖关系来排序要链接的对象(源文件、对象文件和库)。

特别是,那么,

  • 在不太可能需要-L/usr/lib的情况下,它应该出现在-lX11之前,
  • -lX11选项应该出现在链接命令x-alt-tab-mru.c之后。

F 210

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

https://stackoverflow.com/questions/64259821

复制
相关文章

相似问题

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