对没有Shell实用程序的makefile中的String进行算术运算

时间:2014-07-15 09:45:59

标签: windows math makefile operation

我想对字符串变量执行算术运算,我在i386-pc-mingw32(windows)的makefile系统平台上没有shell实用程序。 任何人都可以帮助我如何对字符串变量进行算术运算(减法,比较)吗?

1 个答案:

答案 0 :(得分:0)

要添加一个较晚的答案:GNUmake table toolkit具有许多算术函数(尽管有其名称)。您可以在以8,10和16为底的模数中进行加,减,乘,除,取模。此外,还有通常的二进制运算,或,或,或非。数字可以在60位数左右,但是如果您需要更多的数字,可以进行调整。该代码是纯GNUmake语法,因此可在Windows和Unix之间移植,与shell脚本相反-如果您想对数字进行紧缩处理,当然可能会有更好的解决方案;)

这里是一个例子:

include gmtt/gmtt.mk

NUMBER_A := -12392834798732429827442389
NUMBER_B := 984398723982791273498234
$(info $(call add,$(NUMBER_A),$(NUMBER_B)))
$(info $(call sub,$(NUMBER_A),$(NUMBER_B)))
$(info $(call mul,$(NUMBER_A),$(NUMBER_B)))
$(info $(call div,$(NUMBER_A),$(NUMBER_B)))
$(info $(call mod,$(NUMBER_A),$(NUMBER_B)))

输出:

$ make
-11408436074749638553944155
-13377233522715221100940623
-12199490762401735834920873237276176262117128241026
-12
-580050110938934545463581