Forum: Compiler & IDEs Welches Make nehmen?


von Dino (Gast)


Lesenswert?

Guten Abend,

habe einen Cross-Compiler und möchte dafür eine Make Build-Umgebung 
erstellen. Die Sourcen liegen in unterschiedlichen Ordnern, welches Make 
würdet ihr verwenden?

Dino

von void (Gast)


Lesenswert?

Dino schrieb:
> welches Make würdet ihr verwenden?

$ make -v
GNU Make 4.1
Built for x86_64-pc-linux-gnu
(...)

War das wirklich deine Frage?

von Dino (Gast)


Lesenswert?

void schrieb:
> War das wirklich deine Frage?

Ich bin auf einem Windows-System, was könntet Ihr dafür empfehlen?

Beitrag #5692085 wurde von einem Moderator gelöscht.
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dein Crosscompiler (welcher?) kommt ohne jedwedes Zubehör? Echt?

Hast Du auf Deinem Rechner schon irgendein anderes Entwicklungssystem 
installiert?

von void (Gast)


Lesenswert?


von Udo K. (Gast)


Lesenswert?

Du kannst auch das nmake von Visual Studio verwenden..

von Dino (Gast)


Lesenswert?

Ich habe zwar kein Linux aber ginge auch unter Windows Cygwin und Make?

von Philipp Klaus K. (pkk)


Lesenswert?

Ich würde zu GNU make raten. Das ist am weitesten verbreitet, damit gut 
dokumentiert. Es ist auch auf vielen Systemen verfügbar und relativ 
mächtig.

Die Alternative wäre BSD make, aber dessen Verwendung dürfte nur 
sinnvoll sein, wenn man in ein entsprechendes BSD-Umfeld eingebettet 
ist, oder auf maximale Portabilität achten muss (die eigene Software 
also z.B. unter OpenBSD direkt kompilierbar sein soll, ohne vorherige 
Installation eines GNU make).

Philipp

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dino schrieb:
> aber ginge auch unter Windows Cygwin und Make?

Cygwin ist sogar eigens für Windows gemacht worden, warum wohl endet der 
Name auf -win?

Bevor man aber mit übergewichtigen Elefanten wirft, sollte der 
Threadstarter mal erwähnen, was für einen Compiler er da verwendet; 
vielleicht hat er das mitgelieferte Make einfach übersehen, oder er hat 
schon ein anderes, da er auf seinem Rechner noch einen anderen Compiler 
installiert hat.

von Frederic K. (warfley)


Lesenswert?

Dino schrieb:
> Ich habe zwar kein Linux aber ginge auch unter Windows Cygwin und Make?

Bei Cygwin solltest du aber aufpassen, ähnlich wie beim WSL sind die 
berechtigungen für von Cygwin erstellte Ordner/Dateien etwas kaputt 
(zumindest aus der Sicht von Windows, für Cygwin/WSL ists natürlich 
alles in bester Ordnung) was dann lustige Seiteneffekte hat. Z.B. wenn 
du Visual Studio (Oder konsorten wie Atmel Studio) verwendest 
funktioniert IntelliSense nicht auf diesen Dateien und Ordnern, was die 
Funktionalität von Visual Studio drastisch reduziert.

Daher möchtest du womöglich lieber MinGW statt Cygwin nehmen, welches 
dir auch die wichtigsten GNU Programme bereitstellt, u.a. auch GNU make.

Als Faustregel, Cygwin abgeschlossen verwenden (also alles was du mit 
Cygwin machst sollte im Cygwin system bleiben) und wenn du GNU software 
unter Windows benötigst die du auch mit Windows Programmen verwenden 
willst, nimm MinGW

: Bearbeitet durch User
von Dino (Gast)


Lesenswert?

Hallo,

meine SW ist für verschiedene embedded Zielhardware, jedoch möchte ich 
nur eine Make-Umgebung für alle Projekte und lediglich die EXE-Files des 
Compiler etc. einbinden, ist das mit GNU-Make möglich?

Dino

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dino schrieb:
> ist das mit GNU-Make möglich?

Ja. Aber das geht auch mit jedem anderen Make - auch Microsofts nmake 
kann das; wenn Du also aus irgendeinem Grund schon irgendein Visual 
Studio auf Deinem Rechner installiert hast, kannst Du also das damit 
mitgelieferte nmake verwenden.

Wenn Du Deine makefiles nicht zu sehr an die speziellen Gewohnheiten 
eines bestimmten makes anpasst, sollte ein Wechsel auch kein Problem 
sein.

> The main things to be beware of using GNU Make are all the extended function 
notations for mapping file names (macros) into useful values. While they are 
undoubtedly useful, they are also a trap for portability.

Quelle:
https://stackoverflow.com/questions/2278151/how-similar-different-are-gnu-make-microsoft-nmake-and-posix-standard-make

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Auf Windows:
1
> make -v
2
GNU Make 4.1
3
Built for i686-w64-mingw32
4
Copyright (C) 1988-2014 Free Software Foundation, Inc.
5
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
6
This is free software: you are free to change and redistribute it.
7
There is NO WARRANTY, to the extent permitted by law.

MSYS2 installieren 
https://sourceforge.net/projects/msys2/files/latest/download, dann die 
aktuelle Version 4.2 
https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/make-4.2.1-1-i686.pkg.tar.xz/download 
über den MSYS2 Paketmanager installieren.

Wer unbedingt Version 4.1 haben möchte, nach "make-4.1" im Paketmanager 
suchen.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Ich würde sagen nimm das Make das funktioniert.

Ich habe 7 Verscheidene Make.exe und alle sind unterschiedlich im 
verhalten.
Ist bei alten Projekten immer ein nettes herum probieren welches nun das 
richtige ist.

VG

von Cyblord -. (cyblord)


Lesenswert?

Dino schrieb:
> Hallo,
>
> meine SW ist für verschiedene embedded Zielhardware, jedoch möchte ich
> nur eine Make-Umgebung für alle Projekte und lediglich die EXE-Files des
> Compiler etc. einbinden, ist das mit GNU-Make möglich?

Ich glaube das richtige Make ist dein kleinstes Problem. Ich würde es 
aus dem Bauch heraus mal auf Platz 763 deiner Probleme einordnen.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Die Windows Build Tools welche zu GNU MCU Eclipse gehören enthalten ein 
make und eine Busybox-Shell; damit kann man viele typische Makefiles 
verarbeiten. Die haben eigentlich gar nichts mit Eclipse zu tun und 
können problemlos separat installiert werden:

https://github.com/gnu-mcu-eclipse/windows-build-tools/releases

Ist im Gegensatz zu MinGW/Cygwin sehr kompakt und funktioniert meiner 
Erfahrung nach stabiler als ein paar andere Windows-make-Varianten.

von MakeLove (Gast)


Lesenswert?

Ich werf einfach mal CMAKE in den Raum
Ist ein Build Generator ...

Da kannst du dann für Ninja Files generieren.

von Dino (Gast)


Lesenswert?

Cyblord -. schrieb:
> Ich glaube das richtige Make ist dein kleinstes Problem. Ich würde es
> aus dem Bauch heraus mal auf Platz 763 deiner Probleme einordnen.

Könntest du mir 1-2 mitteilen?

von void (Gast)


Lesenswert?

Dino schrieb:
> Könntest du mir 1-2 mitteilen?

Beispielsweise alle Probleme welche aus den Antworten auf die Fragen von 
Rufus resultieren, die du beharrlich nicht beantworten willst.

von S .C. Harfmacher (Gast)


Lesenswert?

Udo K. schrieb:
> Du kannst auch das nmake von Visual Studio verwenden..

Besser nicht, da in Details inkompatibel zu gnu make

http://nmake.alcatel-lucent.com/faq/gmake.html

>MinGW/Cygwin
wäre auch meine Empfehlung, neben make kann man auch die anderen 
shell-"tools" wie wc, grep, sed, ... gut gebrauchen.

von Dino (Gast)


Lesenswert?

void schrieb:
> Beispielsweise alle Probleme welche aus den Antworten auf die Fragen von
> Rufus resultieren, die du beharrlich nicht beantworten willst.

Gibt es beim Make Inkompatibilitäten mit Cross-Compilern und welche 
wären das zum Beispiel? Möchte doch eine Lösung haben für irgendeinen 
Cross-Compiler.

von Cyblord -. (cyblord)


Lesenswert?

Dino schrieb:
> Gibt es beim Make Inkompatibilitäten mit Cross-Compilern und welche
> wären das zum Beispiel? Möchte doch eine Lösung haben für irgendeinen
> Cross-Compiler.

Da hätten wir schon ein Problem: Du denkst make hat irgendwas mit dem 
Compiler zu schaffen. Abgesehen von der Tatsache dass es ihn aufruft, 
ist das aber nicht der Fall.

Dann liegen Source Dateien, abgesehen von Mini Projekten, meistens in 
mehrere Ordnern. Das ist kein Kriterium für ein bestimmtes make.

von Zweig (Gast)


Lesenswert?

Dino schrieb:
> Guten Abend,
>
> habe einen Cross-Compiler und möchte dafür eine Make Build-Umgebung
> erstellen. Die Sourcen liegen in unterschiedlichen Ordnern, welches Make
> würdet ihr verwenden?

CMAKE -> sehr Leistungsfähig.

Aber wie schon geschrieben funktionieren tut jedes.

CMAKE ist in Combination mit CLion als IDE ein sehr effektive 
Entwicklungsumgebung.

Aber man muss sich halt damit Beschäftigen...

von S. R. (svenska)


Lesenswert?

Zweig schrieb:
> Aber wie schon geschrieben funktionieren tut jedes.

Wobei CMake keinen Compiler aufruft, sondern nur ein Makefile (oder ein 
Visual Studio-Projekt, oder eine Ninjadatei, oder oder oder) erzeugt.

Was mich an CMake stört, ist die deklarative Beschreibung... wenn ich 
damit etwas machen will, was die CMake-Entwickler nicht vorgesehen 
haben, dann wird das schwierig.

Für gewöhnliche C/C++-Entwicklung ist es super.

von Simon D. (jamen)


Lesenswert?

Ich verwende auf Windows auch am liebsten CMake zusammen mit Ninja.

Das funktioniert meiner Erfahrung nach besser als Make in Verbindung mit 
irgendeinem Terminalemulator. Insbesondere mit Cygwin ist die Einbindung 
in Entwicklungsumgebungen wie VS-Code nicht ganz praktisch, da dauert es 
schon mal recht lange bis Make gestartet wird und das ist einfach 
lästig. Außerdem finde ich die Konfiguration in CMake einfacher, als in 
Make alles selber zu tippen. Am schönsten ist es natürlich, wenn einfach 
alles funktioniert, wie in einer guten IDE, aber das ist halt nicht 
immer gegeben.

Ninja ohne CMake kann ich nicht wirklich empfehlen. Standalone ist Make 
dann doch komfortabler.

von S. R. (svenska)


Lesenswert?

Simon D. schrieb:
> Ninja ohne CMake kann ich nicht wirklich empfehlen.

Ninja ist ohne Generator nicht zu gebrauchen.
Das ist aber auch Absicht der Entwickler.
(Ich nutze Ninja zwangsweise, weil Android-Buildsystem...)

von J. V. (janvi)


Lesenswert?

>Gibt es beim Make Inkompatibilitäten mit Cross-Compilern

die kommen meistens vom Anwender nicht vom Compiler. Z. Bsp. wenn make 
die Dateinamen mit Umlauten oder Pfade mti / anstelle \ nicht kapiert 
oder wenn man meint sonst irgendwelche Make Tricks nutzen zu müssen wie 
etwa vordefinierte Suffixregeln für Compiler oder lex und yacc was es 
auf Windows gar nicht gibt. Ansonsten könnte ich mir auch vorstellen 
ganz ohne make auszukommen da die uC Projekte im Gegensatz zu einem 
Linux Kernel typischwerweise ziemlich vernachlässigbare Linkzeiten 
haben.

: Bearbeitet durch User
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.