Sourcecode in DLL konvertieren

Persönliche Seite
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.
OP
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
Gast
>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
OP
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
Gast
> 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.
Gast
> 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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.