【发布时间】:2019-03-28 20:58:55
【问题描述】:
我想从具有完整路径的库列表中构造我的链接器标志LDFLAGS。这就是我被卡住的地方/原因。 (库名称是 Linux 风格的,但我认为这对于如何解决这个问题并不重要。)
FULL_LIBS = \
./path1/libone.a \
../../path2/libtwo.a
# etc.
LIB_DIRS = $(dir $(FULL_LIBS))
LIB_NAMES = $(basename $(notdir $(FULL_LIBS)))
LIB_NAMES_TRIMMED = # zzz trim leading "lib" somehow??? This is what I don't know how to do, or at least the best way
LDFLAGS += \
$(addprefix -L, $(LIB_DIRS)) \
$(addprefix -l, $(LIB_NAMES_TRIMMED))
想要的结果,如果不是很明显,应该是这样的
LDFLAGS += -L./path1 -L../../path2 -lone -ltwo
不确定我是否需要正则表达式(或sed/awk/grep),所以我暂时保留该标签(regex)。
【问题讨论】:
-
不确定我的
-L/-l排序是否正确,因为我记得我记得它一定是按特定顺序排列的,但别担心,我自己可能会解决这个问题。