Servus, wie wandelt man Sourcecode in DLL-Files um damit Funktionen noch aufgerufen werden können? Danke im Voraus Senmeis
Das macht ein Compiler, fast exakt genauso, wie der Compiler lauffähige Programme erzeugt. Der Unterschied liegt in den Einstellungen des Linkers, der im Fall eines Programmes Startupcode und ähnliches dazulinkt, im Falle einer DLL aber DLL-spezifischen Startupcode linkt und das Dateiformat einer DLL erzeugt.
Vielen Dank. Ich habe diesen Artikel durchgelesen. Ich verwende Compiler von Keil und XC16x von Infineon. Gibt's Dokumente speziell für diesen Compiler? Muss mein Sourcecode dafür verändert werden? Danke im Voraus Senmeis
>Ich verwende Compiler von Keil und >XC16x von Infineon. DLL's sind was für (große) Betriebssysteme, also sowas wie Windows oder Linux. Auf Mikrocontrollern ohne Betriebssystem wird das nichts. Wenn du da ein (Echtzeit-)Betriebssystem benutzt, daß DLL's unterstüttzt, dürfte sich alles wesentliche in den Dokus dazu, und in der zu den Compilern, finden lassen. Oliver
Kann es sein, dass du einfach Funktions-Libraries erstellen möchtest? Das geht mit Keil. Ralf
Sorry, ich habe mich geirrt. Was ich will ist folgendes: Ich habe ein paar *.c und *.h-Files und möchte damit Funktions-Libraries erstellen. Der User meiner Bibliotheken kann nur die *.c-Datei bearbeiten, die main() enthält. Danke im Voraus Senmeis
> Der User meiner Bibliotheken kann nur die *.c-Datei bearbeiten, die main() > enthält. Jo, dann ist das genau das, was ich oben beschrieben habe. Also den Output in Keil auf "Library" umstellen. Die erstellte Lib bindest du dann ins Projekt mit ein, und kannst die darin enthaltenen Funktionen entsprechend aufrufen. Allerdings musst du ein paar Sachen beachten. Z.B. lieferst du zu der Lib zwar wie gehabt ein H-File, aber Portdefinitionen können dort nicht neu gesetzt werden, ohne dass die Lib neu erstellt werden muss (falls das wichtig für dich ist) -> es geht schon, aber mit zusätzlichem Aufwand. Ralf
-Objektdatei mit dem Compiler erzeugen (also aus den .h und .c Dateien wird eine .o Datei, bzw. mehrere) -Die gewünschten .o Dateien in ein Archiv packen (z.B. unter Linux geht das mit ar). Jetzt hat man eine .a Datei -Diese kann man nun beim Linken mit der Option -l/name/ hinzufügen, wobei dann nach der Bibliothek lib/name/.a gesucht wird.
> aber Portdefinitionen können dort nicht neu gesetzt werden, ohne dass > die Lib neu erstellt werden muss (falls das wichtig für dich ist) Das gilt generell für alle Makros.
ganz generell sollte man ja auch im Header zu einer Library als Benutzer derselben grundsätzlich nichts ändern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.