如何衡量成功编译的文件百分比?

时间:2017-09-27 14:04:54

标签: c linux compilation

我正在努力将一大块软件移植到一个新平台上,基本上我现在所做的就是修复我偶然发现的编译错误。我的管理层问我"你有多远?" - 我如何衡量我能够成功编译多少以及要花多少钱?

这只是c来源,我得到的日志是' make'是如此疯狂地塞满了,我甚至不知道该怎样才能找到它。

2 个答案:

答案 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行。