我正在尝试构建一个模式规则,允许我%在宏调用中使用,但我没有得到我期望的结果。
模式规则:
%.o: %.cpp $(%_H)
g++ -o $@ $(FLAGS) -c $<
Run Code Online (Sandbox Code Playgroud)
问题出在 $(%_H)
出于某种原因%,没有扩展到它定义的范围。
当我打印出依赖列表时($^),只打印源文件。
我有一种非常干净的方式来设置我想使用的依赖项:
# Header Dependencies per object
Geometry_H:=Geometry.h $(Error_H)
Enemy_H:=Enemy.h $(Geometry_H) $(Error_H)
Surface_H:=Surface.h $(Geometry_H)
Player_H:=Player.h $(Geometry_H) $(Surface_H)
SDLWindow_H:=SDLWindow.h $(Surface_H) $(Error_H)
Path_H:=Path.h $(Geometry_H) $(Error_H)
Territory_H:=Territory.h $(Geometry_H)
Board_H:=Board.h $(Territory_H) $(Geometry_H) $(Player_H) $(Path_H) $(Enemy_H) $(Error_H)
Error_H:=Error.h
Diminisher_H:=Diminisher.h $(SDLWindow_H) $(Geometry_H) $(Surface_H) $(Board_H) $(Error_H)
Main_H:=$(Diminisher_H)
Run Code Online (Sandbox Code Playgroud)
另一个人建议我将这些变量更改为依赖项列表。
即 Main_H:=$(Diminisher_H)
变成 Main.o: $(Diminisher_H)
这是一个很好的修复,它有效。然而,问题仍然存在,$(%_H)不知何故无效。
我想知道如何(如果可能)使其成为有效的表达式。
我已经尝试过$( $%_H ), $( $(%)_H ),$( …
我有一个烦人的问题,我相信这个问题的标题和这个例子完全可以解释
#body {
height: 300px;
width: 100%;
margin: 0;
padding: 0;
background-color: #333;
}
#container {
height: 10%;
background-color: #000;
}
.innerContainer {
width: 30%;
height: 100%;
margin: 0 9.5%;
background-color: #F00;
display: inline-block;
}
.text {
height : 100%;
line-height: 100%;
}
#button {
margin-top: 20%;
margin-left: 20%;
}
Run Code Online (Sandbox Code Playgroud)