Ich wollte 'xxd' (geschrieben in C) neu kompilieren, also habe ich CodeBlocks als IDE installiert.
Alles schien gut zu gehen, bis ich entdeckte, dass ich die 2,0-GB-Grenze nicht überschreiten konnte ...
Ich habe gelesen, dass 'gcc' neu kompiliert werden muss ... (Das klingt ein bisschen dramatisch ..)
Ich habe gelesen, dass ich 'fread64 ()' anstelle von 'fread ()' verwenden kann ... (didn ' t work)
Ich habe etwas über die Optionen eines Compilers gelesen (?) ... aber ich verliere mich an diesem Punkt?
Ich bin überrascht, dass es nicht sofort funktioniert hat, da ich dachte, dass das Limit von 2,0 GB eine alte Geschichte ist, was die Standardeinstellungen angeht ... wieder falsch? :(
Mein Betriebssystem ist 32-Bit auf 32-Bit-Hardware.
Der gcc-Versionsbericht lautet wie folgt: gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Gibt es einen einfachen Weg, um dieses Problem zu umgehen?
PS .. Ich war fasziniert von den Warnhinweisen: Abschnitt 'info xxd' (..nur unter Linux;)
Eine einfache #define scheint alles zu sein, was benötigt wird. (Das Programm schreibt jetzt über 2 GB hinaus.)
Vielleicht liegt der Grund dafür, dass es nicht richtig kompiliert wurde, darin, dass ich ein einzelnes Programm aus einer viel größeren Suite kompiliert habe ('xxd' ist Teil von 'vim') ...
Hätte ich 'vim' vollständig zusammengestellt, hätte es höchstwahrscheinlich gut funktioniert ...
Für jeden, der auf diese Seite kommt, kann Folgendes von Nutzen sein:
Ich gehe davon aus, dass ähnliche Einstellungen für andere IDEs gelten würden.
Außerdem habe ich dieses Snippet entdeckt, als ich nach der Lösung gegoogelt habe ...
Welche Makros sind von gcc vordefiniert? ... im Terminal:
quelle
cpp -dM /dev/null
Ich hatte das gleiche Problem - konnte keine Datei schreiben, die größer als 2 GB war. Mein Betriebssystem war 64 Bit, der Mountpunkt war jfs2 und mein fsize = -1 Ich habe fopen in meinem Programm nur in fopen64 und voila geändert!
quelle
fopen
ist ein Alias vonfopen64
auf 64-Bit-Plattformen.