- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: C++ ?, Target im Source ?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.05.2004
    Ort
    Bergstraße
    Beiträge
    245

    C++ ?, Target im Source ?

    Anzeige

    Powerstation Test
    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

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Hi, normalerweise is ja in der Source irgendein CPU-spezifischer include. Was mault er denn genau ? hat er vielleicht recht ? mfg robert

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    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?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.05.2004
    Ort
    Bergstraße
    Beiträge
    245
    Zitat Zitat von bluebrother
    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

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    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?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    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

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Verdammt, zu lang gebraucht mit dem tippen

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.05.2004
    Ort
    Bergstraße
    Beiträge
    245
    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

  9. #9
    Gast
    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

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.05.2004
    Ort
    Bergstraße
    Beiträge
    245
    werd ich mal probieren, danke.
    ciao .. bernd

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen