我正在运行阿尔卑斯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是在那个目录位置。
但是我的安装仍然失败了这个输出-
$ 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中。
接下来我能做些什么来排除这些问题并让它编译呢?我已经找到了我能想到的一切..。
发布于 2020-10-08 18:05:15
链接命令行上的参数顺序非常重要。-L选项仅适用于对命令行后面指定的库的搜索,并且,至少对于静态链接,链接对象中的未定义符号仅针对命令行后面指定的其他对象进行解析。在链接共享库时,行为可能(或不)有所不同,但是为了安全起见,您应该始终根据对象的依赖关系来排序要链接的对象(源文件、对象文件和库)。
特别是,那么,
-L/usr/lib的情况下,它应该出现在-lX11之前,-lX11选项应该出现在链接命令x-alt-tab-mru.c之后。F 210
https://stackoverflow.com/questions/64259821
复制相似问题