Kann mir jemand bei der .bat-File helfen?

Gast #2290749
Lesenswert?

Hallo,

ich habe ein Programm für mein qfixSoccerBoard geschrieben, womit ich 
den CMPS03-Kompass auslesen kann. Damit die ganzen Befehle nicht in 
meiner main.cc rumstehen habe ich eine CMPS03.c und eine CMPS03.h 
erstellt und die .h in beiden c-Dateien inkludiert. Leider wird beim 
compile-Programm von qfix eine zweite Datei nicht mit eingeschlossen 
werden und die Funktionen werden dann nicht gefunden. Ich habe aber 
bezüglich .bat-Dateien keine Ahnung und auch keine Lust im Internet 
dazuzulernen. Deswegen wollte ich fragen, ob irgendwer mir in die 
vorgefertigte .bat von qfix das Kompilieren von CMPS03.c reinschreiben 
kann.
1
@echo off
2
set TARGET=%1
3
set CONTROLLER=atmega128
4

5
echo compiling ...
6
avr-c++ -g -O2 -Wall -I"%QFIX_DIR%\avr\include" -mmcu=%CONTROLLER% -o %TARGET%.elf %TARGET%.cc
7
avr-objcopy -j .text -j .data -O binary %TARGET%.elf %TARGET%.bin
8
if exist %TARGET%.$$$ del %TARGET%.$$$
9
if exist %TARGET%.elf del %TARGET%.elf
10
echo OK
Das die Datei universell für alle .cc gilt muss natürlich nicht erhalten 
bleiben. Wahrscheinlich muss man nur an der richtigen Stelle ein 
CMPS03.c einfügen, aber diese richtige Stelle kenne ich nicht.
Wäre echt cool wenn das so einfach wäre!

Rubaddl
Gast #2290849
Lesenswert?

Die Drossel schrieb:
> keine Ahnung und auch keine Lust im Internet
> dazuzulernen.

Tja, was fragste dann hier? Hier ist auch das Internet...

Rubaddl schrieb:
> Wahrscheinlich muss man nur an der richtigen Stelle ein
> CMPS03.c einfügen,

Nein, du musst beide einzeln compilieren, und dann die .o 
zusammenlinken.
Das steht so in deinem batch-file nicht drin.
Übllicherweise macht man so etwas mit makefiles.

Lange Rede, kurzer Sinn: Da das mit dem dazulernen nix für dich ist, 
pack halt doch wieder all den Code in dein main.cc.

Wer schönen Code will, muß lernen.

Oliver
Gast #2290945
Lesenswert?

Peter Dannegger schrieb:
> Im aktuellen Verzeichnis (wo man die Bat aufruft)

Die Dateien sind alle im gleichen Verzeichnis und trotzdem werden die 
ausgelagerten Funktionen nicht gefunden.

Die Drossel schrieb:
> Ersetz %1 mit CMPS03.c und dann solltet es nur noch diese Datei
> kompilieren.

Das tuts dann auch, aber ich wollte ja beide Dateien kompilieren und 
eine .bin erhalten; einzeln klappt das ohne Probleme.

Oliver schrieb:
> Übllicherweise macht man so etwas mit makefiles.

Wie sieht das denn dann aus? Wie krieg ich sowas hin?
Gast #2291066
Lesenswert?

Ich habe jetzt einfach die CMPS03.c direkt inkludiert.
Das geht ohne Probleme.
Ich hab zwar irgendwo gelesen, dass man .c, .cpp und .cc-Dateien nicht 
inkludiert, aber weil es klappt...
Danke für die Antworten

Rubaddl

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