Forum: Compiler & IDEs Konfigurations - Include Datei für den Compiler ersetzen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Blume (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich würde gerne eine Open Source SW einbinden.
Dazu clone ich in ein Verzeichnis über Git-Submodul die Quelltexte.

jetzt ist im Source Verzeichnis auch gleich die Konfiguration in einer 
Include Datei der SW abgelegt (ähnlich zu FreeRtosConfig.h)

wie kann ich nun erreichen, das genau diese Datei aus einem anderen 
Verzeichnis
in dem die Projekt spezifischen Einstellungen gemacht werden, vom 
Comiler benutzt wird.

die Suche nach Inkludes beginnt der Compiler ja immer in dem Verzeichnis 
wo auch der C- Quelltext liegt.

ich möchte nicht die Konfigurations - Datei im Submodul Verzeichnis 
abändern

das einzige was mir da einfällt ist von den "erwünschten" Dateien eine 
Kopie in ein anderen Verzeichnis zu erstellen und diese von dort aus zu 
übersetzen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Blume schrieb:
> die Suche nach Inkludes beginnt der Compiler ja immer in dem Verzeichnis
> wo auch der C- Quelltext liegt.

Nur bei #include "dateiname", bei #include <dateiname> dagegen nicht.

von Vincent H. (vinci)


Bewertung
0 lesenswert
nicht lesenswert
Jörg W. schrieb:
> Blume schrieb:
>> die Suche nach Inkludes beginnt der Compiler ja immer in dem Verzeichnis
>> wo auch der C- Quelltext liegt.
>
> Nur bei #include "dateiname", bei #include <dateiname> dagegen nicht.

Was man natürlich nicht beeinflussen kann wenn in den geklonten Source 
Datein der Header via "" inkludiert wird.

Ich würde wohl via Buildtool (z.B. CMake) die Dateien nach dem klonen 
kopieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Vincent H. schrieb:
> Ich würde wohl via Buildtool (z.B. CMake) die Dateien nach dem klonen
> kopieren.

IMHO sind lokale Kopien Mist, weil sie dazu tendieren, dass man im Falle 
des Falles die falsche Datei modifiziert. Dann lieber die "" durch <> 
ersetzen und entweder einen lokalen Branch machen, oder vielleicht auch 
gleich vorschlagen, dass das im Projekt so geändert wird mit der 
Begründung, dass es auf diese Weise einfacher ist, einen Override für 
die Konfiguration im Buildsystem vorzunehmen.

von Blume (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ta

Jörg W. schrieb:
> IMHO sind lokale Kopien Mist, weil sie dazu tendieren, ...

das stimmt bestimmt aber ich will ja gerade an den zugelieferten 
Quelltexten gar nix ändern. Deshalb kämen die dann in das build 
Verzeichnis

Jörg W. schrieb:
>
> Nur bei #include "dateiname", bei #include <dateiname> dagegen nicht.

hab ich getestet, würde funktionieren. Vielen Dank

Wenn das in den orginal Quelltexten gemacht wurde, dann würden alle 
anderen Benutzer darunter leiden.

Es geht um die FatFS von

http://elm-chan.org/fsw/ff/00index_e.html

und dort um die datei ffconf.h diese wird in ff.h inkludiert aber mit "

Er selber pflegt wohl kein Repository wenn ich das richtig sehen?

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
Wenn du es eh in einem git speicherst, wäre eine Möglichkeit, das über 
separate Branches zu erledigen - eine, in der der Originalcode steht und 
eine mit deinen Modifikationen. Wenn du das Original aktualisieren 
willst, checkst du das in die entsprechende Branch ein und mergst das in 
deine Entwicklungsbranch.
Die hier machen das wohl auch so: https://github.com/RIOT-OS/FatFS

von Blume (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
> Wenn du es eh in einem git speicherst, wäre eine Möglichkeit, das über
> separate Branches zu erledigen - eine, in der der Originalcode steht und
> eine mit deinen Modifikationen

In dem Fall nicht über Git Submodule ??

mfg Blume

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
Blume schrieb:
> In dem Fall nicht über Git Submodule ??

Das hat ja erst mal nichts miteinander zu tun. Git Submodule kannst du 
ja trotzdem nutzen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.