Als «gcc» getaggte Fragen

GCC ist die GNU Compiler Collection. Es ist der De-facto-Standard-Compiler für C, C ++, Go, Fortran und Ada unter Linux und unterstützt auch viele andere Sprachen und Plattformen. Neben dem Compiler verfügt GCC über eine Toolchain (libc, libstdc ++, objdump, nm usw.), die auf verschiedenen Plattformen und Systemen weit verbreitet ist.

5
Ist das __attribute __ ((gepackt)) / #pragma pack von gcc unsicher?
In C legt der Compiler die Elemente einer Struktur in der Reihenfolge an, in der sie deklariert sind, wobei mögliche Füllbytes zwischen den Elementen oder nach dem letzten Element eingefügt werden, um sicherzustellen, dass jedes Element ordnungsgemäß ausgerichtet ist. gcc bietet eine Spracherweiterung __attribute__((packed)), die den Compiler anweist, keine Auffüllungen …
164 c  gcc  pragma-pack 

5
Warum erzeugt diese Schleife "Warnung: Iteration 3u ruft undefiniertes Verhalten auf" und gibt mehr als 4 Zeilen aus?
Zusammenstellung: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } und gccerzeugt die folgende Warnung: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ Ich verstehe, dass es einen vorzeichenbehafteten Ganzzahlüberlauf gibt. Was ich nicht …



3
LD_LIBRARY_PATH vs LIBRARY_PATH
Ich erstelle ein einfaches C ++ - Programm und möchte eine vom System bereitgestellte gemeinsam genutzte Bibliothek vorübergehend durch eine neuere Version ersetzen, um sie zu entwickeln und zu testen. Ich habe versucht, die Variable LD_LIBRARY_PATH zu setzen, aber der Linker (ld) ist fehlgeschlagen mit: / usr / bin / …
159 gcc  g++  ld 

3
Funktionsdeklaration ist kein Prototyp
Ich habe eine Bibliothek, die ich erstellt habe. mylib.c: #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } mylib.h: #include <stdio.h> extern int testlib(); In meinem Programm habe ich versucht, diese Bibliotheksfunktion aufzurufen: myprogram.c: #include <mylib.h> int main (int argc, char *argv[]) { testlib(); return (0); } Wenn ich …
158 c  gcc 


24
Nützliche GCC-Flags für C.
Welche anderen wirklich nützlichen, aber weniger bekannten Compiler-Flags gibt es neben dem Setzen -Wallund Setzen -std=XXXfür die Verwendung in C? Ich bin besonders an zusätzlichen Warnungen interessiert und / oder daran, Warnungen in einigen Fällen in Fehler umzuwandeln, um versehentliche Typinkongruenzen absolut zu minimieren.
157 c  gcc  compiler-flags 





2
Was macht gccs Fast-Mathe eigentlich?
Ich verstehe gcc's --ffast-math Flag von Geschwindigkeit für Float-Ops erheblich erhöhen kann und außerhalb der IEEE-Standards liegt, aber ich kann anscheinend keine Informationen darüber finden, was wirklich passiert, wenn es eingeschaltet ist. Kann jemand bitte einige Details erklären und vielleicht ein klares Beispiel dafür geben, wie sich etwas ändern würde, …

6
Was ist der Vorteil von GCCs __builtin_expect in if else-Anweisungen?
Ich bin auf eine gestoßen, #definein der sie verwenden __builtin_expect. Die Dokumentation sagt: Eingebaute Funktion: long __builtin_expect (long exp, long c) Sie können verwenden __builtin_expect, um dem Compiler Informationen zur Verzweigungsvorhersage bereitzustellen. Im Allgemeinen sollten Sie es vorziehen, hierfür das tatsächliche Profil-Feedback zu verwenden ( -fprofile-arcs), da Programmierer bekanntermaßen schlecht …
144 c  linux  gcc  built-in 

11
Ist die Verwendung eines veralteten C-Compilers ein Sicherheitsrisiko?
Wir haben einige Build-Systeme in der Produktion, die niemanden interessieren, und auf diesen Maschinen werden alte Versionen von GCC wie GCC 3 oder GCC 2 ausgeführt. Und ich kann das Management nicht davon überzeugen, es auf ein neueres zu aktualisieren: Sie sagen: "Wenn es nicht kaputt ist, reparieren Sie es …
139 c  security  gcc 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.