Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Wie kompiliere und führe ich ein C-Programm in einer Linux-Umgebung aus? (ausführliche Erklärung)

Wie kompiliere und führe ich ein C-Programm in einer Linux-Umgebung aus? (ausführliche Erklärung)

青灯夜游
青灯夜游nach vorne
2018-10-25 16:47:564840Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen