Eclipse generate Makefile

Gast #4633160
Lesenswert?
• ▲
▼
Hallo zusammen,

An folgendem Problem beisse ich mir gerade die Zähne aus.

Ich arbeite mit Eclipse und benutze den gcc compiler inkl gcc build 
tools.

Aufgrund dessen, dass ich mit Windows arbeite/n (muss), muss ich 
eingriffe in das generierte Makefile machen. Der Linkeraufruf ist 
einfach zu lang für Windows und ich muss deshalb mit einer Datei 
arbeiten in der ich alle Objectfiles an den Linker übergebe.

Jetzt bin ich allerdings in der Situation, dass ich die automatisch 
generierten Makefiles natürlich
nicht einfach so nutzen kann. Denn wenn das Makefile von Eclipse 
generiert wird, ist das Kind ja schon in den Brunnen
gefallen.

Ich finde die automatische Erstellung des Makefiles aber wirklich sehr 
angenehm und würde das gerne so beibehalten
ohne ständig daran herrumfummeln zu müssen. Ich finde es wirklich gut, 
dass ich mich um nichts weiter kümmern muss als in eclipse ein neues 
Modul zu inkludieren und aus diesen einstellungen
sofort ein makefile zu bekommen. Auch solche dinge wie bei einzelnen *.c 
"exclude from source" wäre mit einem
selbst erstellten makefile mehr arbeit ?! oder?!

Ein weiterer Punkt ist, dass ich mich einfach nicht so gut mit Makefiles 
auskenne um mir ein
vernünftiges selbst zu schreiben :-(. Vielleicht muss ich mich damit 
beschäftigen?

Kommt man irgendwie an das Eclpise template ran?
Gast #4633185
Lesenswert?
• ▲
▼
Vielleicht stellst Du eine so spezielle Frage lieber
in einem Eclipse-Forum.

Ansonsten: Eclipse ist Open Source.
In diesem Fall findest Du die Lösung wahrscheinlich in CDT (C 
development tooling)
Gast #4633198
Lesenswert?
• ▲
▼
Ich kenne das Workaround und nutze es schon.

Die Grenze von 8192 Zeichen ist für Commandline Calls.

Es gibt aber eine generelle Grenze von 31k für Parameterlängen in 
Windows... Eclipse übergibt den Linkerstring an die Buildtools (sh-shell 
und make)

31k hört sich nach enorm viel an aber mit ext. software hat man schnell 
mehrere hundert files die in verschachtelten Pfaden liegen.
#4633203
Lesenswert?
• ▲
▼
EL schrieb:
> Ich kenne das Workaround und nutze es schon.

Nö, da steht auch, dass einen großen Teil der Sourcen in eine Library 
stecken kannst. Dann wird nur noch dieser Libraryname dem Linker 
übergeben. Beim bauen der Lib must du natürlich auch aufpassen, dass du 
nicht zuviele Source in eine Lib packst.

Du könntest dir auch manuell ein Makefile erstellen und in Eclipse dann 
ein Makefile-Projekt nutzen anstatt ein von Eclipse verwalteten 
Makefile.
Gast #4633246
Lesenswert?
• ▲
▼
900ss D. schrieb:
> EL schrieb:
>> Ich kenne das Workaround und nutze es schon.
>
> Nö, da steht auch, dass einen großen Teil der Sourcen in eine Library
> stecken kannst. Dann wird nur noch dieser Libraryname dem Linker
> übergeben. Beim bauen der Lib must du natürlich auch aufpassen, dass du
> nicht zuviele Source in eine Lib packst.
>

Ich habe bereits externe grafik libs die dieses limit sprengen.


> Du könntest dir auch manuell ein Makefile erstellen und in Eclipse dann
> ein Makefile-Projekt nutzen anstatt ein von Eclipse verwalteten
> Makefile.

Ja, Ich fürchte daran komme ich nicht vorbei...
Gast #4633566
Lesenswert?
• ▲
▼
Hallo nochmal...

ich habs jetzt tatsächlich geschaft. Der Generator läuft wie Peter 
vermutet hat vor dem start von make.

Es besteht tatsächlich die möglichkeit statt make ein anderes Programm 
oder ein Script starten zu lassen. Das Makefile ist zu diesem Zeitpunkt 
schon fertig.

Jetzt läuft das bei mir über Python. Erst das makefile ändern, dann
make anwerfen.

Danke nochmal. Vorallem an PeterII ;-)
Gast #4633677
Lesenswert?
• ▲
▼
Theoretisch ist das erzeugen deines Projekts auch vom makefile selber 
abhängig. Wenn dann jedes Mal eine neues generiert wird müssen ja alle 
Quelle übersetzt werden.
Wenn du schon eigene makefiles generieren willst, solltest du vielleicht 
cmake https://cmake.org/ in Betracht ziehen.

Von einer IDE (egal von welcher) generierte make files habe immer 
Schwierigkeiten damit eigene Erweiterungen einzubauen. Z.B. statische 
Code Analyse, Doxgen Dokumentation generieren, komplettes Release gleich 
noch zippen und per mail versenden oder per FTP hochladen oder auch nur 
im HexFile eine Checksumme einzutragen.

Deshalb will ich wieder weg von den IDE’s die den Build Prozess selber 
steuern.
Gast #4633679
Lesenswert?
• ▲
▼
DerDan schrieb:
> Theoretisch ist das erzeugen deines Projekts auch vom makefile selber
> abhängig. Wenn dann jedes Mal eine neues generiert wird müssen ja alle
> Quelle übersetzt werden.

schein in der Praxis aber nicht so zu sein. Das müsste man extra als 
Abhängigkeit hinzufügen.
#4633761
Lesenswert?
• ▲
▼
DerDan schrieb:
> Deshalb will ich wieder weg von den IDE’s die den Build Prozess selber
> steuern.

Du musst deswegen nicht weg von der IDE. Du kannst auch einfach das 
Generieren des Makefiles abschalten und stattdessen Dein eigenes 
Makefile oder eigenes Buildsystem oder Script verwenden. Eclipse kann 
den Build-output dann trotzdem noch parsen und dann daraus die ganzen 
Include-Pfade und defines ableiten die es braucht für ein Code-Assist 
ohne rote Wellenlinien..

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren