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.


11
Wie schlecht ist "if (! This)" in einer C ++ - Mitgliedsfunktion?
Wenn ich auf alten Code stoße, der if (!this) return;in einer App funktioniert, wie hoch ist das Risiko? Ist es eine gefährliche tickende Zeitbombe, die eine sofortige App-weite Suche und Zerstörung erfordert, oder ist es eher ein Code-Geruch, der ruhig an Ort und Stelle gelassen werden kann? Ich habe natürlich …
73 c++  visual-c++  gcc 


5
Für die Erstellung von GCC sind GMP 4.2+, MPFR 2.3.1+ und MPC 0.8.0+ erforderlich
Ich habe GCC 4.5 von http://www.netgull.com/gcc/releases/gcc-4.5.0/ heruntergeladen, aber wenn ich versuche, es einzurichten / zu erstellen, wird der folgende Fehler angezeigt: Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1040> /x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0/configure CC="gcc -m64" --prefix=/x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0 --with-gmp-lib=/usr/lib64 --with-mpfr-lib=/usr/lib64 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++ checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking …
72 gcc  gmp  mpfr  mpc 

2
Was ist eine Datei mit der Erweiterung .a?
Ich habe dies heruntergeladen: https://github.com/mongodb/mongo-c-driver Und jetzt versuche ich es in meinem C-Programm zu verwenden, aber ich weiß nicht, was ich mit den generierten .a-Dateien machen soll. Was sind Sie? Ich konnte keine Informationen finden, auch nicht im GCC-Handbuch. Und ich habe es so gebaut: scons --c99 Kann ich mit …

3
Was ist der Leistungsnachteil von C ++ 11 thread_local-Variablen in GCC 4.8?
Aus dem GCC 4.8-Änderungsprotokollentwurf : G ++ implementiert jetzt das Schlüsselwort C ++ 11 thread_local ; Dies unterscheidet sich vom GNU- __threadSchlüsselwort hauptsächlich dadurch, dass es eine dynamische Initialisierungs- und Zerstörungssemantik ermöglicht. Leider erfordert diese Unterstützung eine Laufzeitstrafe für Verweise auf nicht funktionslokale thread_localVariablen, auch wenn sie keine dynamische Initialisierung …

5
So verhindern Sie, dass MinGW und MSYS die in der Befehlszeile angegebenen Pfadnamen beschädigen
Unter Windows kompiliere ich ein Programm für ARM / Linux mithilfe der Cross-Compiler-Suite von CodeSourcery. Ich verwende MinGW MSYS als Befehlsinterpreter, und sehr oft werden meine Pfade und Pfadnamen beschädigt. Um beispielsweise mein Programm zu erstellen, rufe ich auf arm-none-linux-gnueabi-gcc.exe -Wall -g \ -Wl,--dynamic-linker=/usr/lib/myrpath/ld-linux.so.3 \ -Wl,-rpath=/usr/lib/myrpath \ -I../targetsysroot/usr/include \ myprogram.c …

6
Erweitertes REP MOVSB ​​für memcpy
Ich möchte erweitertes REP MOVSB ​​(ERMSB) verwenden, um eine hohe Bandbreite für eine benutzerdefinierte zu erhalten memcpy. ERMSB wurde mit der Ivy Bridge-Mikroarchitektur eingeführt. Weitere Informationen finden Sie im Abschnitt "Erweiterter REP MOVSB- und STOSB-Betrieb (ERMSB)" im Intel-Optimierungshandbuch, wenn Sie nicht wissen, was ERMSB ist. Ich weiß nur, dass ich …
71 c  gcc  assembly  x86  memcpy 



1
gcc-10.0.1 Spezifischer Segfault
Ich habe ein R-Paket mit C-kompiliertem Code, das seit einiger Zeit relativ stabil ist und häufig gegen eine Vielzahl von Plattformen und Compilern (Windows / OSX / Debian / Fedora GCC / Clang) getestet wird. In jüngerer Zeit wurde eine neue Plattform hinzugefügt, um das Paket erneut zu testen: Logs …

1
Warum füllt die GCC-Aggregatinitialisierung eines Arrays das Ganze zuerst mit Nullen, einschließlich Nicht-Null-Elementen?
Warum füllt gcc das gesamte Array mit Nullen anstatt nur mit den verbleibenden 96 Ganzzahlen? Die Nicht-Null-Initialisierer befinden sich alle am Anfang des Arrays. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to …


1
Clang kompiliert keinen Code, aber gcc und msvc haben ihn kompiliert
Ich verstehe nicht, was das Problem ist: entweder in meinem Code oder im Compiler (weniger möglich). Es gibt einen Code wie diesen: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, …


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.