我正在处理一个旧的 makefile,其中包含以下代码片段来生成共享库:
lib$(LIBNAME).so.$(SOLIBREV): $(OBJS)
$(RM) $@~
@SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; set -x; \
$(CC) -o ./$@~ -shared -Wl,-soname,$$SONAME $(OBJS) $(SOEXTRALIBS) -lc;
$(MV) $@~ $@
$(MV) $@ lib$(LIBNAME).so
现在我需要修改它。我知道 $@ 指定了目标,但是“$@~”中的波浪号有什么含义?
顺便说一下,SOLIBREV 代表 so-library-revision。
最佳答案
没有什么特别的意思。它只是 $@
后面跟着一个文字 ~
。文件名上的 ~
后缀通常用于临时文件,因此本方案使用以目标命名但带有额外 ~
后缀的临时文件。
关于Makefile:$@~ 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227725/