GNU-Compiler


1. Grundlagen


GNU-C++-Compiler
g++ -o <executable> <quelldatei>.cpp


GNU-C-Compiler
gcc -o <executable> <quelldatei>.c


pthreadsKeine Zugangsberechtigung: Bibliothek libpthread.so für Threads einbinden und alle c-Module zu einer Applikation linken.
gcc *.c -o <executable> -combine -pthread -D__DEBUG__



gcc -g -o myprog mainprog.o somefunctions.o -lpthreads -L/home/user1/libs




2. Relevante Themen

3. Quellprogramme


GNU-C-Programm
#include <stdio.h>

int main(int argc, char** argv)
{
   //...
   return 0;
}


GNU-C++-Programm
#include <cstdio>

int main(int argc, char* argv[])
{
   //...
   return 0;
}



4. GCC-Parameter


Ein Kompletter Überblick über die Optionen des GCC auf gcc.gnu.org
Getting familiar with gcc parameters




FlagBedeutung
-OOptimierungsstuffe → Parameter für die CodeoptimierungKeine Zugangsberechtigung
-c Nur Kompilieren; erzeugt Objekt-Dateien mit der Endung .o
-S Assemblercode erzeugen, um zu sehen was der Compiler eigentlich produziert.
-o <Datei>Die Ausgabe in eine bestimmte Datei ausgeben
-funsigned-char -funsigned-charDer Datentyp char wird als signed char bzw. unsigned char angenommen, wenn es eine Bedeutung in einem Programm spielt.
-w Alle Warnungen unterdrücken.
-WallAlle Warnungen ausgeben.
-gErzeugt Debuginformationen, je nachdemwas welcher Standarddebugger eingestellt ist.
-ggdb Erzeugt Debuginformationen für den GDB.
-gcoff -gxcoffErzeugt Debuginformationen im coff-Format bzw. xcoff-Format.
-pErzeugt Profiling-Informationen für das Programm prof.
-pgErzeugt Profiling-Informationen für das Programm gprof.
-aErzeugt Profiling-Informationen um feststellen zu könne, wie häufig verschiedene Blöcke ausgeführt wurden.
-includeEine Datei vorher bearbeiten, als würde Sie zum Projekt dazugehören.
-d<Label>Ein Präprozessor-Label definieren.
-dMGibt alle #defines aus.
-l<Bibliothekenname> Linkeroption: Gibt an, welche Bibliothek eingebunden werden soll
-L<Verzeichis>Weiterer Suchpfad für Bibliotheken
-march=<Arch>Native Code für eine bestimmten Prozessor generieren z.B. -march=pentium3 oder -march=armv6j
-mtune=<cpu-type>athlon, .... Intel 386 and AMD x86-64 Options
-fshort-enumsKleineren Datentyp für enum, sonst immer integer
-fshort-doubleErsetze double durch float





Siehe auch CLinuxOpenMP

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki