Der Inhalt dieses Artikels besteht darin, vorzustellen, wie man C-Programme in einer Linux-Umgebung kompiliert und ausführt. (ausführliche Erklärung). Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.
1 Kompilierung und Ausführung einer einzelnen Datei
Erstellen Sie die Datei main.c mit folgendem Inhalt:
#include <stdio.h>#include <stdlib.h>int main(void){ printf("Hello world!\n");return 0; };
Kompilieren:
gcc -o main main.o
Ausführung:
root@ubuntu:/ybg/python# ./main Input an integer:10sum=55
2 Kompilierung und Ausführung mehrerer Dateien
Sum.c-Datei mit folgendem Inhalt erstellen:
#include <stdio.h>#include <stdlib.h>int sum(int x){int i, result=0;for(i=0; i<=x; i++){ result+=i; }if(x > 100) exit(-1);return result; };
main.c-Datei erstellen mit folgendem Inhalt:
#include <stdio.h>#include <stdlib.h>int main(void){int x; printf("Input an integer:\n"); scanf("%d", &x); printf("sum=%d\n", sum(x));return 0; };
Kompilieren
gcc -c sum.c -fPIC -o sum.ogcc -c main.c -fPIC -o main.o
Um eine ausführbare Datei zu generieren, lautet der Dateiname main
gcc -o main sum.o main.o
Führen Sie das Programm aus
./main
Die Ausführung Das Ergebnis ist das gleiche wie oben
3 Verwenden Sie die Dynamic Link Library-Methode
, um eine Dynamic Link Library zu generieren
gcc sum.o -shared -o sum.so
, um eine ausführbare Datei mit zu generieren der Dateiname main
gcc -o main sum.o main.o
execute
./main
Wenn der folgende Fehler gemeldet wird, bedeutet dies, dass die gerade generierte sum.so nicht im Standardpfad der Dynamic Link Library gefunden wurde
./main: Fehler beim Laden gemeinsam genutzter Bibliotheken: sum.so: Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis
Führen Sie den folgenden Befehl aus, um das aktuelle Verzeichnis zur Umgebungsvariablen für den Suchpfad der Dynamic Link Library hinzuzufügen
export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH
Erneut ausführen
./main
Das Ausführungsergebnis ist das gleiche wie oben
4 Python ruft die .so Dynamic Link Library auf
Erstellen Sie die test.py-Datei mit folgendem Inhalt:
import ctypes so = ctypes.CDLL('./sum.so')print "so.sum(50) = %d" % so.sum(50)
Execute
root@ubuntu:/ybg/python# python test.py so.sum(50) = 1275
Das obige ist der detaillierte Inhalt vonWie kompiliere und führe ich ein C-Programm in einer Linux-Umgebung aus? (ausführliche Erklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!