如何编译 efivar 0.24?

如何编译 efivar 0.24?

我在编译时遇到问题艾菲瓦尔 0.24并且已经在 StackExchange 上搜索了答案,我找到了一个接近的答案如何编译 efivar?但它并没有完全解决我的问题。make V=1 -j1

我收到一条错误消息

root:/sources/efivar-0.24/src# make V=1 -j1
make -f /sources/efivar-0.24/src/Make.deps deps SOURCES="crc32.c creator.c disk.c gpt.c linux.c loadopt.c dp.c dp-acpi.c dp-hw.c dp-media.c dp-message.c efivarfs.c export.c guid.c guids.S guid-symbols.c lib.c vars.c makeguids.c guid.c include/efivar/efivar-guids.h include/efivar/efivar.h include/efivar/efiboot.h include/efivar/efiboot-loadopt.h include/efivar/efivar-dp.h include/efivar/efiboot-creator.h include/efivar/efivar-guids.h guid-symbols.c efivar.c"
make[1]: Entering directory '/sources/efivar-0.24/src'
make[1]: Nothing to be done for 'deps'.
make[1]: Leaving directory '/sources/efivar-0.24/src'
gcc -O2 -g3 -I/sources/efivar-0.24/src/include/efivar/  -specs=/sources/efivar-0.24/gcc.specs  -L.      -static -I/usr/include -o efivar-static efivar.c dp.static.o dp-acpi.static.o dp-hw.static.o dp-media.static.o dp-message.static.o efivarfs.static.o export.static.o guid.static.o guids.static.o guid-symbols.static.o lib.static.o vars.static.o -ldl -lpopt
/usr/bin/ld: cannot find -lpopt
collect2: error: ld returned 1 exit status
make: *** [/sources/efivar-0.24/Make.rules:17: efivar-static] Error 1

我已经检查了 Make.Defaults 其中包含

prefix  ?= /usr/
libdir  ?= $(prefix)/lib64/
datadir ?= $(prefix)/share/
mandir  ?= $(datadir)/man/
includedir ?= $(prefix)/include/
bindir  ?= $(prefix)/bin/
PCDIR   ?= $(libdir)/pkgconfig/
DESTDIR ?=

我还搜索了 popt.h 和 popt.pc 以确保它们位于正确的目录中。

root:/sources/efivar-0.24/src# find / -iname popt.h
/usr/include/popt.h
root:/sources/efivar-0.24/src# find / -iname popt.pc
/usr/lib/pkgconfig/popt.pc

/usr/lib/pkgconfig/popt.pc 的输出为

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: popt
Version: 1.16
Description: popt library.
Libs: -L${libdir} -lpopt
Cflags: -I${includedir}

如果有人可以帮助我找到解决办法,或者至少为我指出一个我应该关注的方向,那就太棒了。预先感谢你们,伙计们和女孩们。

相关内容