关于c代码编译文件makefile的疑问: SHELL = @SHELL@

SHELL等号右边的“@SHELL@”是什么含义,在这里是什么作用?哪位大侠能给解答一下?整个MakeFile文件代码如下:SHELL=@SHELL@CC=@CC@DEF... SHELL等号右边的“@SHELL@”是什么含义,在这里是什么作用?哪位大侠能给解答一下?
整个MakeFile文件代码如下:

SHELL = @SHELL@
CC = @CC@
DEFS = @DEFS@
LIBS = @LIBS@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
INSTALL = @INSTALL@
top_srcdir = @top_srcdir@
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

CFLAGS += -Wall -DNOT_HAVE_SA_LEN

TARGET = mDNSClient
DESTDIR =

all: $(TARGET)

mDNSClient: mDNSPosix.o mDNSUNP.o ExampleClientApp.o mDNS.o Client.o
$(CC) $(LFLAGS) $^ -o $@

install:
$(mkinstalldirs) $(DESTDIR)$(bindir)/
$(INSTALL) -s $(TARGET) $(DESTDIR)$(bindir)

uninstall:
rm -f $(DESTDIR)$(bindir)/$(TARGET)

clean:
rm -f $(TARGET) *.o

distclean:
展开
 我来答
ace_fei
2011-11-01 · TA获得超过2013个赞
知道小有建树答主
回答量:734
采纳率:100%
帮助的人:727万
展开全部
在使用autoconf工具的时候,才需要写成类似这样@SHELL@的形式
追问
能详细解释一下它在这里的意义吗?假如是常量,那么通常我们可以用别的方式替代么?谢谢阿。
追答
这个我就说不清楚了,毕竟没用过autoconf工具。
以下摘自《GNU make中文手册》
prefix
这个变量(通常作为实际文件安装目录的父目录,可以理解为其它实际文件安装目录的前缀)用于构造下列(除这两个安装根目录以外的其它目录变量)变量的缺省值。变量“prefix”缺省值是“/usr/local”。创建完整的GNU系统时,变量prefix的缺省值是空值,“/usr”是“/”的符号连接符文件。(如果使用“Autoconf”工具,它应该写成“@prefix@”)。注意:当更改了变量“prefix”以后重新执行“make install”,不会导致可执行程序(终极目标)的重建。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式