Wie kompilieren Sie die multithread-code mit gcc
Habe ich gesehen, das zwei makefiles wie folgt:
all: thread1 thread2 thread3
CFLAGS=-I/usr/include/nptl -D_REENTRANT
LDFLAGS=-L/usr/lib/nptl -lpthread
clean:
rm -f thread1 thread2 thread3
######################
all: thread1 thread2 thread3
CFLAGS=-D_REENTRANT
LDFLAGS=-lpthread
clean:
rm -f thread1 thread2 thread3
Ohne Verwendung von makefile, was ist die richtige Befehlszeile zu kompilieren, die thread1.c mit gcc?
gcc -o thread1
CFLAGS=-I/usr/include/nptl
-D_REENTRANT LDFLAGS=-L/usr/lib/nptl -lpthread thread1.c
Was wollen Sie Fragen? Diese beiden makefiles wird dazu führen, dass verschiedene Befehle zum laufen zu bekommen.
Ich will nicht verwenden Sie diese makefile zu kompilieren, alle source codes und möchte einfach nur den code zu kompilieren eins nach dem anderen durch die gcc-Kommandozeile.
mögliche Duplikate von gcc: brauche ich-D_REENTRANT mit pthreads?
Aber das setzen von flags, die Sie benötigen, um zu bestehen? Sie benötigen die
Ich will nicht verwenden Sie diese makefile zu kompilieren, alle source codes und möchte einfach nur den code zu kompilieren eins nach dem anderen durch die gcc-Kommandozeile.
mögliche Duplikate von gcc: brauche ich-D_REENTRANT mit pthreads?
Aber das setzen von flags, die Sie benötigen, um zu bestehen? Sie benötigen die
-I
und -L
Fahnen oder nicht? Das ist nicht etwas, jeder kann hier die Antwort für Sie.InformationsquelleAutor q0987 | 2011-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr code nicht mit externen Abhängigkeiten über pthread:
Zitat:
Ich denke, der code verwendet nptl. Aus dem Buch "In Multithread Programme, sagen Sie dem compiler, dass diese Funktion benötigen Sie, durch die Definition der _REENTRANT makro vor jedem #include-Zeilen in deinem Programm." Aber der angehängte Quellcode thread1.c nicht die _REENTRANT, so Frage ich mich, was ich tun sollte.
Aktualisierte Antwort.
InformationsquelleAutor karlphillip
Ihre Frage wird hier beantwortet
gcc: brauche ich-D_REENTRANT mit pthreads?
Im wesentlichen alles, was Sie brauchen, ist
gcc thread1.c -o thread1 -pthread
- und gcc-um all das definiert für Sie.
InformationsquelleAutor JohnKlehm
Fast:
Den
*FLAGS
Variablen enthalten die Argumente, die an die compiler-und linker-invocartion, beziehungsweise. (In deinem Fall bist du kompilieren und linken in einem Rutsch.) Stellen Sie sicher, dass Sie Bibliotheken nach Ihre eigenen Objekt-Dateien.InformationsquelleAutor Kerrek SB
Diese beiden makefiles generieren, die von zwei verschiedenen Sätzen von command-line Argumente. Sie könnten überprüfen Sie es selbst nur mit
make
:Wählen Sie Ihre Lieblings -.
aber
make
schon zeigt Ihnen der Befehl Linie. Einfach copy/paste aus der Ausgabe.InformationsquelleAutor Carl Norum