Hallo zusammen, ich habe ein Projekt, für welches ich in Abhängigkeit von bestimmten Einstellungen im Source Code zwei verschiedene Linker Skripte verwende. Im Source Code habe ich z.B. #define A bzw. #define B. Dementsprechend werden dann verschiedene Codeteile verwendet und daraus folgend muss ich verschiedene Linker Skripts verwenden. Aktuell mache ich dieses von Hand. Ist es möglich, das Linker File auf Basis der oben genannten #define automatisch zu wählen? Oder ist es eventuell möglich innerhalb eines Linker Files auch entsprechende Unterscheidungen zu treffen auf Basis der Angaben im Source Code? Als IDE verwende ich das NXP S32 Design Studio, falls das wichtig ist. Danke. Gruß Peter
Peter schrieb: > ich habe ein Projekt, für welches ich in Abhängigkeit von bestimmten > Einstellungen im Source Code zwei verschiedene Linker Skripte verwende. Ich würde das durch den Build steuern. Ich kenne jetzt die Möglichkeiten Deiner IDE nicht, aber im Endeffekt würde ich zwei unterschiedliche Build-Typen/Varianten anlegen und dem entsprechend A und / oder B für den Compiler definieren und den Aufruf des Linkers unterschiedlich gestalten. In einigen meiner Projekte mache ich es auch so, dass ich das Linker-Script erst während des Builds erstelle.
Peter schrieb: > Im Source Code habe ich z.B. #define A bzw. #define B. Dementsprechend > werden dann verschiedene Codeteile verwendet und daraus folgend muss ich > verschiedene Linker Skripts verwenden. Könnte man nicht beide Varianten in ein Script schreiben und verschiedene Namen verwenden? Also z.B. top_of_stack_A und top_of_stack_B? Der unbenutzte Teil dürfte doch einfach ignoriert werden.
Peter schrieb: > ich habe ein Projekt, für welches ich in Abhängigkeit von bestimmten > Einstellungen im Source Code zwei verschiedene Linker Skripte verwende. "Einstellungen im Source Code" - das ist der Fehler. Konfigurationsmanagement gehört nach außerhalb des Sourcecodes. Die Information, welche Konfiguration gerade compiliert wird, kann man dem Sourcecode dann ja per Makrodefinition mitteilen (-D Kommandozeilenoption des Compilers). > Als IDE verwende ich das NXP S32 Design Studio Ich habe noch keine IDE gesehen, die nicht schon von Haus aus Konfigurationen für "Debug" und "Release" vorgesehen hätte. Die meisten erlauben es, eine beliebige Anzahl weiterer Konfigurationen anzulegen. Und dann kann man für jede Konfiguration an allen möglichen Parametern drehen. Ob da das Linkerskript dabei ist, mußt du selber nachsehen. Wenn alle Stricke reißen, kann man vielleicht auch das Linkerskript selber so (um)schreiben, daß es Bedingungen prüft. Google nach "linker script conditionals" bringt ein paar Ideen. Inklusive der Option, das Linkerskript durch den C Präprozessor zu jagen.
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.