Hi, normalerweise is ja in der Source irgendein CPU-spezifischer include. Was mault er denn genau ? hat er vielleicht recht ? mfg robert
moin moin,
auch auf die Gefahr hin RTFM oder 'google doch' zu bekommen hier zwei Fragen zu WinAVR:
1) Wie kompiliere ich ein C++-Sourcefile ? Habe das File als .cpp gespeichert und im Makefile als Target .cpp eingestellt. Der Compiler meckert dann 'missing separator' in einer der ersten Sourcezeilen.
2) Ist es möglich im Sourcefile die TargetCPU (also nicht im makefile) anzugeben ?
Besten Dank für alle (auch nicht konstruktive) Antworten
ciao .. bernd
Hi, normalerweise is ja in der Source irgendein CPU-spezifischer include. Was mault er denn genau ? hat er vielleicht recht ? mfg robert
ich habs nie probiert aber ich könnte mir denken dass das mit einem #define geht. Aber wofür solltest du sowas machen wollen?Ist es möglich im Sourcefile die TargetCPU (also nicht im makefile) anzugeben
Ich baue einen Roboter mit 3 Prozessoren (2xMega8, 1xMega32) und jeder bekommt natürlich ein anderes Programm. Da ich meist an allen Programmen (fast) gleichzeitig arbeite, vergesse ich meist das target im makefile zu ändern und wundere mich dann warum es nicht geht. Da jedes Programm nur für einen Prozessor gedacht ist, könnte ich diese Fehlerquelle durch ein "Festverdrahtung" vermeiden.Zitat von bluebrother
Mit dem #define könnte ich vielleicht erreichen, dass das richtige IO-File eingebunden wird (oder gleich ein bestimmtes einbinden), aber wahrscheinlich muss der Linker auch Bescheid wissen ... hmmm, dann geht es vielleicht garnicht im Sourcefile ?
ciao .. bernd
warum arbeitest du dann nicht mit 3 Verzeichnissen, für jeden µC einen? Dann kann jeder sein eigenes Makefile haben und du kriegst keine Probleme. Ist das nicht sonst auch etwas unübersichtlich?
Ne, geht nicht im Sourcefile. Wie gesagt, der Linker will das auch wissen...
Du könntest dir notfalls für jeden Prozessor eine .bat Datei erstellen die das ganze dann compiliert und zusammenlinkt, ist aber vermutlich aufwendiger...
Aber warum legst du dir nicht einfach drei Ordner mit eigenem Makefile für die drei Projekt an ?? Oder gibt es nur ein Programm das mal für den einen Prozessor dann wieder für den anderen compiliert werden soll ??
MfG Kjion
Verdammt, zu lang gebraucht mit dem tippen
Jupp, mit 3 Verzeichnissen ist wahrscheinlich am vernünftigsten. Es liegt wahrscheinlich an meiner 'organischen' Programmierweise, dass ich das (bei diesem Projekt) bisher nicht gemacht habe.
ciao ... bernd
hi bernd,
zu deiner 1. frage (Wie kompiliere ich ein C++-Sourcefile ?...)
probier einfach mal im makefile die zeile wo der compiler angegeben ist (jetzt ist es (nehm ich an) avr-gcc) in avr-g++ zu ändern. dann wird standardmässig der c++ compiler verwendet. sonst lass alles gleich im makefile (als dateinamenendungen auf c (nict cpp)).
ich weiss ist etwas unsauber c++ code mit c endung zu produzieren, aber so funktionierts...
lg
tom
werd ich mal probieren, danke.
ciao .. bernd
Lesezeichen