C2H unterstützt die Erzeugung von Beschleunigern aus C-Dateien nicht.
Es gibt eine Anleitung, die es Ihnen ermöglicht, Ihren Beschleuniger(en) aus einem C-Programm aufzurufen, bei dem die Funktionen verschoben werden, die Sie von einer C-Quelldatei in eine C-Quelldatei beschleunigen möchten. Sobald Sich Ihre Funktionen in einer C-Quelldatei befinden, kann der C2H Compiler sie effektiv "sehen" und in Hardwarebeschleuniger konvertieren.
Für das Mischen von C- und C-Funktionen (und Dateien) sind einige zusätzliche Schritte erforderlich.
Die GNU Tool-Chain unterstützt das Aufrufen von C-Funktionen aus C-Programmen (und vice.0) durch eine genau definierte Methodik expliziter Aussagen. Die Art und Weise, wie dies funktioniert, besteht darin, dass Sie dem Compiler aus Ihrem C-Programm sagen, welche Funktionen als C-Funktionen anstatt als C aufgerufen werden sollen. Dieser Vorgang erfolgt durch den Einsatz des extern verwendeten "C" innerhalb der C-Quelldatei.
Einige Beispiele für das externe "C" in Aktion sind:
- C-Funktion aus dem C-Programm aufrufen
Setup: Sie haben eine Function void bar(void), die in der C-Quelldatei "bar.c", die Sie aus der C-Quelldatei "the.cpp" aufrufen möchten, gespeichert ist.
Lösung: Fügen Sie dies zur Oberseite von "the.cpp"- hinzu.
extern "C" void (void);
- Aufrufen von C-Funktionen aus dem C-Programm
Setup: Eine Sammlung von Funktionen, die in der C-Quelldatei "bar.c", die Sie aus der C-Quelldatei "the.cpp" aufrufen möchten, gespeichert ist.
Lösung: Fügen Sie einfach bmuras um die Funktionsgruppe oben in der extern-Anweisung in "the.cpp"- hinzu.
extern "C" {
void (void);
int(int number);
int( int number1, int number2);
}
- Aufrufen eines C-Headers aus einem C-Programm
Setup: Sie haben eine ganze Sammlung von C-Funktionen (oder eine Bibliothek) in einer Datei namens "bar.c", die Sie aus Ihrem C-Programm "dann.c" aufrufen möchten, und möchten sie im Rahmen des Verfahrens Nr. 2 (oben) wirklich nicht einzeln auflisten. Sie haben eine Header-Datei für "bar.c" namens "bar.h", die die Schnittstelle zu den Funktionen beschreibt.
Lösung: Die externe Anweisung funktioniert auch für Header-Dateien ... Verwenden Sie in der Datei "the.cpp" die extern-Anweisung, um die Header-Datei hinzuzufügen.
extern "C" {
#include "bar.h"
}
Welche Methodik ist am besten mit C2H zu verwenden? Mit dem C2H-Compiler wird empfohlen, dass ein Benutzer die Funktion zur Beschleunigung in eine eigene Datei "isolieren" kann. Daher ist das erste Beispiel der beste Ansatz für die Beschleunigung von Funktionen mit dem C2H-Compiler.