我最近选择了makefile并尝试自动化我的构建过程。对于这个makefile,我希望它找到每个xxx / src / xxx.c源文件,并为每个文件构建一个等效的xxx / obj / xxx.o对象。所以每个obj文件夹都会镜像src文件夹的布局。
这是按预期工作的,但只有在我清理和制作的情况下。修改源文件并运行make不会重建该文件。我认为它可能与%.o依赖的我的subst有关,但我不知道如何修改它仍然让我的自动构建布局工作。
execFile()
答案 0 :(得分:3)
您可以通过迭代import random
def random_number():
random_dollars = random.uniform(1, 10000)
split = str(random_dollars).split(".")
if (len(split) == 2 ):
if (len(split[1]) == 1 ):# checks if 1 digit after decimal place
answer = split[0] + ".0"
split[1] = str(int(int(split[1]) / (10 ** (len(split[1]) - 3) )))
# Gets 3 decimal places
if int(split[1][-1:]) => 5: #Checks if last digit is above or equal to 5
split[1] = int(split[1][:-1])
split[1] += 1
else:
split[1] = int(split[1][:-1])
answer = split[0] + '.' + str(split[1])
else:
answer = split[0] + ".00"
print(answer)
random_number()
来解决此类%/xxxx/%
模式替换:
SRCDIR
答案 1 :(得分:1)
您可以使用secondary expansion执行此操作。它并不优雅,但它有效:
.SECONDEXPANSION:
%.o: $$(addsuffix .c,$$(basename $$(subst /obj/,/src/,$$@)))
@echo building $@ from $^
@mkdir -p $(@D)
gcc -o $@ -c $< $(CFLAGS) $(INC)