make 找不到 -luuid 错误

make 找不到 -luuid 错误

我正在使用 centos7 并且正在尝试构建这个https://github.com/daveti/prov-tools/tree/master/system不过我得到

/usr/bin/ld: cannot find -luuid

我用 libuuid 进行了 yum install ,它说它已安装,但我似乎缺少 libuuid.a 。然而没有libuuid-static。是否有我丢失的包,或者我可以更改我的 makefile 以便我制作。

这是生成文件

PREFIX ?= /usr  

CFLAGS ?= -Wall -Werror 
CFLAGS += -std=gnu99 -static

BINARIES = pbang ncred elijah fixbang
OBJECTS = plog

all: $(BINARIES)

clean:
    $(RM) $(BINARIES) $(addsuffix .o,$(OBJECTS))

install: $(addprefix install-,$(BINARIES))

install-%: %
    install -D $< $(DESTDIR)$(PREFIX)/sbin/$<

ncred elijah: plog.o

pbang: LDLIBS += -lz -luuid

.PHONY: all clean install

编辑:我使用 find 验证了我有 libuuid.so,但我不确定如何链接到此?

答案1

你需要libuuid 开发,这个包提供了编译用的库。

利布乌伊德提供运行库

答案2

红帽给出了理由错误 596898。本质上,静态库,特别是对于基础设施来说,是非常强烈劝阻(动态库机制上次对我起作用已经很久了,所以我衷心同意)。

一般来说,我会尝试查找包含可能的文件名的包,例如:

dnf provides /usr/lib64/libuuuid.a

dnf它很聪明,因为它还可以通过名称识别 TeX 或 Perl/Python 模块的片段)。然后您可以询问更多信息和任何点击,并决定做什么。如果匆忙且鲁莽:

dnf -y install /usr/lib64/libuuuid.a

相关内容