PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ ?, Target im Source ?



bhm
26.01.2005, 12:04
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

PicNick
26.01.2005, 12:23
Hi, normalerweise is ja in der Source irgendein CPU-spezifischer include. Was mault er denn genau ? hat er vielleicht recht ? mfg robert

bluebrother
26.01.2005, 12:25
Ist es möglich im Sourcefile die TargetCPU (also nicht im makefile) anzugeben
ich habs nie probiert aber ich könnte mir denken dass das mit einem #define geht. Aber wofür solltest du sowas machen wollen?

bhm
26.01.2005, 14:53
Ist es möglich im Sourcefile die TargetCPU (also nicht im makefile) anzugeben
ich habs nie probiert aber ich könnte mir denken dass das mit einem #define geht. Aber wofür solltest du sowas machen wollen?
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.
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

bluebrother
26.01.2005, 16:08
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?

Kjion
26.01.2005, 16:17
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

Kjion
26.01.2005, 16:18
Verdammt, zu lang gebraucht mit dem tippen ;-)

bhm
26.01.2005, 22:18
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

06.02.2005, 11:13
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

bhm
07.02.2005, 00:16
werd ich mal probieren, danke.
ciao .. bernd