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