我正在使用 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