我想重新编译“xxd”(用 C 语言编写),所以我安装了 CodeBlocks 作为 IDE。
一切似乎都很顺利,直到我发现我无法写入超过 2.0 GB 的障碍......
我读过'gcc'需要重新编译......(这听起来有点戏剧性......)
我读过我可以使用'fread64()'而不是'fread()'......(没有' t 工作)
我读过一些关于编译器选项的东西(?)......但我当时迷路了?
我很惊讶它没有开箱即用,因为我认为 2.0 GB 的限制在默认情况下是古老的历史......又错了?:(
我的操作系统是 32 位的,在 32 位硬件上。
gcc 版本报告为:gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
有没有解决这个问题的简单方法?
PS .. 我对WARNINGS: section of 'info xxd' (..only on Linux ;) 很着迷
似乎只需要一个简单的#define ..(程序现在写入超过 2 GB。)
也许它没有正确编译的原因是我从一个更大的套件编译了一个程序('xxd' 是 'vim' 的一部分)......
如果我完全编译了“vim”,它很可能会工作得很好......
因此,对于访问此页面的任何人,以下内容可能具有一定的价值:
我假设类似的设置将适用于其他 IDE。
另外,我在搜索解决方案时发现了这个片段......
gcc 预定义了哪些宏?...在终端:
我建议添加
-D_GNU_SOURCE
只要#include <features.h>
使用。这将启用所有大文件支持。阅读开头/usr/include/features.h
了解更多详情:我遇到了同样的问题——无法写入大于 2GB 的文件。我的操作系统是 64 位的,挂载点是 jfs2,而我的 fsize=-1 我所做的只是将程序中的 fopen 更改为 fopen64,瞧!