makefile call
时间: 2023-08-10 12:09:29 浏览: 53
在Makefile中,`$(call PROGRAM_template, (callPROGRAMtemplate,(prog)))`是一个特殊的函数调用语法。它用于展开一个名为`PROGRAM_template`的函数,并将`(callPROGRAMtemplate,(prog))`作为参数传递给该函数。
具体来说,`$(call PROGRAM_template, (callPROGRAMtemplate,(prog)))`的作用是调用名为`PROGRAM_template`的函数,并将`(callPROGRAMtemplate,(prog))`作为参数传递给该函数。在这个例子中,`PROGRAM_template`是一个自定义的函数模板,而`(callPROGRAMtemplate,(prog))`则是一个展开后的表达式。
根据提供的引用[1]和[2],我们可以得到以下展开结果:
对于server程序:
```makefile
server : $(server_OBJS) $(serverO BJS) $(server_LIBS)
$(CC) $(LDFLAGS) $^ -o $@
```
对于client程序:
```makefile
client : $(client_OBJS) $(clientO BJS) $(client_LIBS)
$(CC) $(LDFLAGS) $^ -o $@
```
这些展开结果定义了如何编译链接server和client程序。每个程序的目标文件列表由相应的变量指定,例如`$(server_OBJS)`表示server程序的目标文件列表。然后使用C编译器和链接器进行编译链接操作,生成可执行文件。