Forum: Compiler & IDEs MSP-GCC unter Linux findet Include-Dateien nicht


von Ewald K. (ebtschi)


Lesenswert?

Ich habe folgendes Problem mit MSP-GCC unter Linux:

Nach der (laut Script) erfolgreichen Installation versuche ich, das
"leds"-Beispiel zu kompillieren. Das Ergebnis sieht leider so aus:

[ebtschi@localhost examples]$ cd leds/
[ebtschi@localhost leds]$ ls
CVS  hardware.h  main.c  makefile  README.txt
[ebtschi@localhost leds]$ make
msp430-gcc -mmcu=msp430x1121 -O2 -Wall -g   -c -o main.o main.c
In file included from main.c:6:
hardware.h:4:16: io.h: No such file or directory
hardware.h:5:20: signal.h: No such file or directory
hardware.h:6:22: iomacros.h: No such file or directory
main.c: In function `delay':
main.c:14: warning: implicit declaration of function `nop'
main.c: In function `main':
main.c:26: error: `WDTCTL' undeclared (first use in this function)
main.c:26: error: (Each undeclared identifier is reported only once
main.c:26: error: for each function it appears in.)
main.c:26: error: `WDTPW' undeclared (first use in this function)
main.c:26: error: `WDTHOLD' undeclared (first use in this function)
main.c:28: error: `P1OUT' undeclared (first use in this function)
main.c:29: error: `P2OUT' undeclared (first use in this function)
main.c:31: error: `P1SEL' undeclared (first use in this function)
main.c:32: error: `P2SEL' undeclared (first use in this function)
main.c:34: error: `P1DIR' undeclared (first use in this function)
main.c:35: error: `P2DIR' undeclared (first use in this function)
main.c:37: error: `P1IES' undeclared (first use in this function)
main.c:38: error: `P2IES' undeclared (first use in this function)
main.c:39: error: `P1IE' undeclared (first use in this function)
main.c:40: error: `P2IE' undeclared (first use in this function)
make: *** [main.o] Error 1
[ebtschi@localhost leds]$ whereis stdio.h
stdio: /usr/include/stdio.h /usr/share/man/man3/stdio.3.gz
[ebtschi@localhost leds]$ whereis io.h
io: /usr/include/io.h
[ebtschi@localhost leds]$

Die Include-Datei "io.h" wird von whereis gefunden (ist, glaube ich,
auch im richtigen Verzeichnis), aber nicht vom GCC.
Das ganze läuft (oder eben nicht) unter Fedora Core 2. Kann mir bitte
jemand weiterhelfen?

von Marco S (Gast)


Lesenswert?

Hallo.

Bei mir ist der ganze Kram unter /usr/local/msp430 installiert und
erzeugt folgenden output:

msp430-gcc -mmcu=msp430x1121 -O2 -Wall -g   -c -o main.o main.c
msp430-gcc -mmcu=msp430x1121 -o leds.elf main.o
msp430-objcopy -O ihex leds.elf leds.a43
msp430-objdump -dSt leds.elf >leds.lst

D.h., dass leds-Verzeichnis von examples-0.6.tgz scheint in Ordnung zu
sein, und es liegt wahrscheinlich an deiner Installation der
msp-Umgebung.

Gruß
Marco
-

von Fritz G. (fritzg)


Lesenswert?

/usr/include/io.h ist für den i386 Compiler.

Gibts eine libc für den MSP-GCC? Vielleicht sind sie da drin.

von Steve (Gast)


Lesenswert?

hi läuft es mittlerweile? habe unter windows das gleiche problem...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Gibts eine libc für den MSP-GCC?

Meiner Erinnerung nach eine Portierung von newlib.

von Ewald K. (ebtschi)


Lesenswert?

Ich hab einfach die neueste libc neu installiert, meine vorige Version
dürfte nicht mehr ganz aktuell gewesen sein, bzw. mit den restlichen
Tools nicht ganz kompatibel.

Warum baut eigentlich keiner ein "Gesamtpaket", wo alle benötigten
libraries schon enthalten sind?

Wenn ich mal nichts zu tun haben sollte (ha-ha) würd ich mir das
vielleicht vornehmen, zumindest für rpm-basierte Distros.

von KoF (Gast)


Lesenswert?

gesamtpacket:
- braucht man wirklich immer alles? compiler, debuger,...
- häufige anpassung
  (mspgcc unterstützt auch schon msp430f2xxx typen ;-)
- viel arbeit
- es gibt doch tolle install-skripte, die alles ziehen und
installieren
- es gibt auch nicht rpm-distributionen -> debianzweig,...
- es gibt auch nicht x86 rechner (ppc,sparc,mips,...)
- wenn es im code ausgeliefert wird ist es auch für bsd
  (free, net, open) oder gar cygwin ;-) nutzbar
...

von albra (Gast)


Lesenswert?

Hallo,
ja das Problem kenne ich hatte ich auch mit dem Atmega8. Da sind die
Pfade nicht richtig gesetzt. Da ich nicht der Linux-König bin, habe ich
die Pfade im jeweiligen Files per Hand ersetzt. Also <in.h> auf
"woauchimmer/io.h" geändert.
Wie bereits erwähntist die Io.h die dir mit whereis angezeigt wird ist
nicht die, die für den Msp benötigt wird.


Dirk

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Also <in.h> auf
> "woauchimmer/io.h" geändert.

Das ist immer die schlechtestes Idee.  Dann eher noch mit -I
Optionen zum Compiler die Suchpfade erweitern.

von Ewald K. (ebtschi)


Lesenswert?

@ KoF:

Ja, stimmt schon, aber es gibt auch Leute, die mit möglichst wenig
Aufwand wollen, dass alles "einfach nur funktioniert" - ohne sich um
Dependencies etc. kümmern zu müssen.

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.