Als «g++» getaggte Fragen

g ++ ist das C ++ - Frontend der GNU Compiler Collection (GCC). 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.




4
Verknüpfung mit dynamischer Bibliothek mit Abhängigkeiten
Stellen Sie sich das folgende Szenario vor: Shared Library libA.so, ohne Abhängigkeiten. Shared Library libB.so mit libA.so als Abhängigkeit. Ich möchte eine Binärdatei kompilieren, die mit der libB verknüpft ist. Sollte ich die Binärdatei nur mit libB oder entweder mit libA verknüpfen? Gibt es eine Möglichkeit, nur mit den direkten …
79 gcc  dll  dependencies  g++ 



12
GCC C ++ Linker-Fehler: Undefinierter Verweis auf 'vtable for XXX', undefinierter Verweis auf 'ClassName :: ClassName ()'
Ich richte ein C ++ - Projekt unter Ubuntu x64 mit Eclipse-CDT ein. Ich mache im Grunde genommen eine Hallo-Welt und verbinde mich mit einer kommerziellen Bibliothek von Drittanbietern. Ich habe die Header-Dateien eingefügt, die mit ihren Bibliotheken verknüpft sind, aber ich erhalte immer noch Linker-Fehler. Gibt es hier andere …
70 c++  linker  g++  eclipse-cdt 


1
Warum erhalten gleichnamige externe lokale Variablen in verschiedenen Blöcken unterschiedliche Verknüpfungen zwischen Compilern in C ++?
Während ich nur überprüfte, welche Verknüpfungen externen lokalen Variablen gewährt werden, stellte ich fest, dass sich Compiler unterschiedlich verhalten Wenn ich zum Beispiel den folgenden Code getestet habe, wie Sie in den Kommentaren sehen, varhaben die Variablen unterschiedliche Verknüpfungen // foo.cpp int var = 10; // external linkage // main.cpp …
12 c++  g++  clang++  extern  linkage 

2
Warum zerfällt ein leeres String-Literal in einem mehrdimensionalen Array in einen Nullzeiger?
Ich möchte ein mehrdimensionales C-String-Array definieren, das durch mehrere String-Literale initialisiert wird. In C würde ich folgendes tun: #include <stdio.h> const char *strArr[2][1] = { {"foo"}, {""}}; int main(void) { printf("%p\t%p\n", strArr[0][0], strArr[1][0]); return 0; } Kompilieren mit gcc -std=c18 -pedantic test.cund Ausführen von Ergebnissen in: $ ./a.out 0x55d95410f004 0x55d95410f008 …
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.