我正在使用GCC交叉编译器(arm-none-eabi-)开发ARM架构(裸机)程序。为了保持代码大小,我使用" - specs = nano.specs"链接器标志,链接newlib-nano。 我遇到的问题是长时间长时间" printf支持,即:
long long int val = 1234;
pritnf("%lld", val);
添加" -u _printf_float"链接器标志无法解决此问题。它确实会导致代码大小增加9kB,但它似乎只是添加了浮动支持,没有" long long"支持。链接newlib(删除" - specs = nano.specs"标志) - 尽管确实解决了问题 - 是不可接受的,因为它会导致代码大小增加46kB。
是否有任何标志仅重新启用" long long"支持newlib-nano版本的printf?
答案 0 :(得分:2)
不太了解newlib-nano(它是一些fork吗?),但是newlib也没有对long long说明符的默认支持,所以可能会有所帮助:
--enable-newlib-io-long-long
flag