检查 Makefile 中是否存在库

问题描述 投票:0回答:1

有没有办法在 Makefile 中检查库(此处:librt)在系统中是否可用? 对于 librt 位于库中而不是 glibc 中的旧系统,我想测试它是否在系统中,如果是,则链接它,如果不是,则链接它(因为不需要)。

换句话说,在 bash 中,它会是这样的:

if [ -f /usr/lib/librt.so ] || [ -f /usr/lib/librt.a ]; then
    LIBS=${LIBS} -lrt
fi

但是如何在Makefile中做到这一点?

gcc makefile gnu-make
1个回答
0
投票

虽然在我看来它不是很有用,但你可以用它来得到你想要的东西:

RTLIB_PATHS = /usr/lib/librt.so /usr/lib/librt.a
RTLIB := $(if $(wildcard $(RTLIB_PATHS)),-lrt)

LIBS += $(RTLIB)
© www.soinside.com 2019 - 2024. All rights reserved.