Heim >Backend-Entwicklung >C++ >Wie kann ich C-Funktionen erfolgreich aus C-Code heraus aufrufen?

Wie kann ich C-Funktionen erfolgreich aus C-Code heraus aufrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-26 09:47:10507Durchsuche

How Can I Successfully Call C Functions from Within C   Code?

Aufrufen von C-Funktionen aus C-Code heraus: Eine umfassende Anleitung

Um eine C-Funktion in C-Code zu integrieren, könnte man die Verwendung des Standardidioms „extern „C““ in Betracht ziehen. void foo()". Allerdings kann dieser Ansatz während der Kompilierung mit g trotz erfolgreicher Kompilierung mit gcc fehlschlagen.

Um dieses Problem zu beheben, befolgen Sie die folgenden Schritte:

Schritt 1: Separate Kompilierung von C- und C-Code

Kompilieren Sie den C-Code mit:

gcc -c -o somecode.o somecode.c

Kompilieren Sie den C-Code Verwenden von:

g++ -c -o othercode.o othercode.cpp

Schritt 2: Verknüpfung über C-Linker

Kombinieren Sie die kompilierten Objekte mithilfe des C-Linkers:

g++ -o yourprogram somecode.o othercode.o

Schritt 3: Informieren Sie den C-Compiler darüber C-Header

Fügen Sie eine Deklaration für die C-Funktion in den C-Code ein, dem „extern „C“ vorangestellt ist. {}:

extern "C" {
#include "somecode.h"
}

Schritt 4: Deklaration in somecode.h

Definieren Sie die C-Funktion in der Header-Datei somecode.h:

#ifndef SOMECODE_H_
#define SOMECODE_H_

void foo();

#endif

Hinweis: Die Befehle in diesem Beispiel galten für gcc. Der grundlegende Ansatz bleibt für jeden Compiler anwendbar. Kompilieren Sie den Code separat für C und C. dann verlinke sie.

Das obige ist der detaillierte Inhalt vonWie kann ich C-Funktionen erfolgreich aus C-Code heraus aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn