我通过Mingw在Windows上编写了一个linux程序.但是,转换并不完美.
例如,在Windows上输出是这样的(我得到’zu’而不是实数):
Approximated minimal memory consumption:
Sequence : zuM
Buffer : 1 X zuM = zuM
Table : 1 X zuM = zuM
Miscellaneous : zuM
Total : zuM
事实证明,Mingw不支持%zu,但它提供了一种解决方法.在web site他们说:
This will never work since you are using Microsoft’s implementation.
Use mingw_printf directly or define USE_MINGW_ANSI_STDIO to 1 before
including stdio.h.
所以,我在我的程序中进行了搜索,我发现cdhit-common.h是唯一一个有#include行的文件.所以,我在该行上方定义了USE_MINGW_ANSI_STDIO并进行了编译:
#include
#include
#include
#include
#define USE_MINGW_ANSI_STDIO 1
#include
...
它编译但程序仍然输出’zu’而不是数字.我做的不错吗?为什么没用?
注意:使用mingw时,使用USE_MINGW_ANSI_STDIO的解决方案适用于mingw64.我希望是适用于这两个平台.
解决方法:
我现在设法谷歌的宏是:__USE_MINGW_ANSI_STDIO.试试吧.
标签:c,linux,gcc,mingw
来源: https://codeday.me/bug/20190728/1561364.html