Forum: Compiler & IDEs Bibliothek beim Linken verändern?


von Michael A. (michael_a40)


Lesenswert?

Hallihallo,

ich bin gerade dabei, eine mathematische Bibliothek für den MSP430FG4618 
zu schreiben (Varianz, RMS, FFT, Sorts, etc.).

Das klappt soweit ganz gut.

Jetzt habe ich mir mithilfe des msp430-ar Archiver eine statische 
Bibliothek gebaut, die ich nun in der eigentlichen Software als Library 
einbinde.

Da die meisten Funktionen gefenstert sind, und daher anpassbare Arrays 
benötigten, habe ich mir eine Klasse "defines.h" geschrieben:
1
#ifndef DEFINES_H_
2
#define DEFINES_H_
3
4
#ifndef WINDOW_SIZE
5
#define WINDOW_SIZE 64
6
#endif
7
8
#ifndef WINDOW_OVERLAP
9
#define WINDOW_OVERLAP (WINDOW_SIZE >> 1)
10
#endif
11
12
#define WINDOW_MASK (WINDOW_SIZE - 1)

Alle Funktionen benutzen Arrays der Größe "WINDOW_SIZE", welche 
allerdings veränderlich sein sollte.

Nach Erstellen der STATISCHEN Bibliothek befürchte ich nun, dass die 
Konstante zur Kompilierzeit bekannt sein muss, und nicht im Nachhinein 
beim  Linken der Library in das Hauptprogramm geändert werden kann.

Gibt es eine andere Möglichkeit, ein Array dynamisch zu halten?

Eine andere Idee wäre, dass ich verschieden benötigte Libraries 
anfertigte, die dann vom Benutzer einfach selbst gelinkt werden.

Ich habe auch gelesen, dass shared bzw. dynamische Bibliotheken nicht 
unterstützt werden, ist das auch richtig, oder gibt es eine Möglichkeit?


Viele Grüße,
Michael

von Karl H. (kbuchegg)


Lesenswert?

Michael A. schrieb:

> Nach Erstellen der STATISCHEN Bibliothek befürchte ich nun, dass die
> Konstante zur Kompilierzeit bekannt sein muss, und nicht im Nachhinein
> beim  Linken der Library in das Hauptprogramm geändert werden kann.

Ist auch so.
In der Lib ist alles bereits kompiliert. So wie es da drinnen steht, so 
wird es benutzt.

> Gibt es eine andere Möglichkeit, ein Array dynamisch zu halten?
Natürlich.
Aber das willst du nicht wirklich tun.
Nicht auf einem kleinen µC.



Lass denjenigen, der die Funktionen benutzt das Fenster anlegen. Er muss 
den Bibliotheksfunktionen das zu benutzende Fenster zur Verfügung 
stellen.

von Michael A. (michael_a40)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Michael A. schrieb:
>
>> Nach Erstellen der STATISCHEN Bibliothek befürchte ich nun, dass die
>> Konstante zur Kompilierzeit bekannt sein muss, und nicht im Nachhinein
>> beim  Linken der Library in das Hauptprogramm geändert werden kann.
>
> Ist auch so.

Dachte ich mir ;)

>> Gibt es eine andere Möglichkeit, ein Array dynamisch zu halten?
> Natürlich.
> Aber das willst du nicht wirklich tun.
> Nicht auf einem kleinen µC.

Dachte ich mir auch ;)

> Lass denjenigen, der die Funktionen benutzt das Fenster anlegen. Er muss
> den Bibliotheksfunktionen das zu benutzende Fenster zur Verfügung
> stellen.

Werde ich nun tun.

Vielen Dank!

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
Noch kein Account? Hier anmelden.