首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读制作文件。符号的意义

阅读制作文件。符号的意义
EN

Stack Overflow用户
提问于 2015-06-05 05:36:04
回答 2查看 236关注 0票数 0

我正在努力学习如何阅读makefiles,并偶然发现了这一个。我的问题是指目标%.c的规则。在第一个命令下。上面写着

代码语言:javascript
复制
 %.c: %.psvn  psvn2c_core.c psvn2c_state_map.c psvn2c_abstraction.c
    ../psvn2c  $(PSVNOPT) --name=$(*F)  < $< > $@

$(*F) < $ < > $@是什么意思?我已经把整个makefile贴在下面。

代码语言:javascript
复制
   CC = gcc
        CXX = g++
        OPT = -g -Wall -O3 -Wno-unused-function -Wno-unused-variable -std=c++11
        PSVNOPT = --no_state_map --no_backwards_moves --history_len=0 --abstraction --state_map 

psvn2c_core.c:
    cp ../psvn2c_core.c ./psvn2c_core.c

psvn2c_state_map.c:
    cp ../psvn2c_state_map.c ./psvn2c_state_map.c

psvn2c_abstraction.c:
    cp ../psvn2c_abstraction.c ./psvn2c_abstraction.c

%.c: %.psvn  psvn2c_core.c psvn2c_state_map.c psvn2c_abstraction.c
    ../psvn2c  $(PSVNOPT) --name=$(*F)  < $< > $@
    rm -f ./psvn2c_core.c ./psvn2c_state_map.c ./psvn2c_abstraction.c

我想将此理解为学习如何运行带eclipes或visual studio的gdb等c++调试器的第一步。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-05 19:13:58

在makefile中以$开头的任何内容都是变量引用(或者,在GNU中是一个内置函数),除非它是用另一个$ (即是$$)转义的。变量的名称可以是单个字符,如$@$A等,也可以是括号或大括号中的一个或多个字符,如$(@)${A} (与最后一个字符相同)、$(FOO)${FOO}等。

GNU制作手册包含大量关于所有预定义和特殊变量的信息。这些看起来特别奇怪的变量是自动变量

如果它不是变量,并且是食谱的一部分,那么它就被发送到shell,所以您应该查看shell文档来理解它。

票数 1
EN

Stack Overflow用户

发布于 2015-06-05 05:56:09

正确的说法是<意味着从输入管道中输入,然后$<是依赖列表中的第一个文件。和>意味着管道输出到和$@是输出文件,即。文件左边的:符号?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30659029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档