我正在努力将一大块软件移植到一个新平台上,基本上我现在所做的就是修复我偶然发现的编译错误。我的管理层问我"你有多远?" - 我如何衡量我能够成功编译多少以及要花多少钱?
这只是c来源,我得到的日志是' make'是如此疯狂地塞满了,我甚至不知道该怎样才能找到它。
答案 0 :(得分:1)
我天真地比较.cpp文件和.o文件的数量:
#!/bin/bash
number_of_sources=$(find . -name \*.cpp | wc -l)
number_of_objects=$(find . -name \*.o | wc -l)
progress=$(echo "${number_of_objects} * 100 / ${number_of_sources}" | bc)
echo "${progress}% of translation units successfully compiled."
这需要与您的上下文相关的调整(某些子路径不要像.git/
那样,有些重命名,......)
答案 1 :(得分:0)
假设您有一个将c ++文件编译为目标文件的通用目标,您可以对makefile进行一些调整,以便为它计算编译:
SHELL=/bin/bash
[...]
COMPILED_FILES=0
all:
#whatever you do to compile object files together
echo "Total number of compiled files: " $(COMPILED_FILES)
%.o:%.cpp
#whatever you do to compile to object file
$(eval COMPILED_FILES=$(shell echo $$(($(COMPILED_FILES)+1))))
可以从this questions selected answer了解eval
行。