GCC Crosscompiler unter Debian Wheezy

betaros

betaros

Computerspezi
Moin,

ich versuche unter Debian Wheezy Paparazzi UAV zum laufen zu bekommen und habe es nach dieser Anleitung installiert und kompiliert: http://wiki.paparazziuav.org/wiki/Installation/Linux

Die Installation war auch erfolgreich und ich kann Paparazzi starten, wenn ich jedoch zu einen Copter etwas uploaden möchte kommt folgende Meldung:
Code:
RUN 'make -C /opt/paparazzi -f Makefile.ac AIRCRAFT=ardrone2_sdk  ap.upload '
make: Entering directory `/opt/paparazzi'
-----------------------------------------------------------------------
Paparazzi version v5.3_devel-318-g80953a8
-----------------------------------------------------------------------
#######################################
# BUILD AIRCRAFT=ardrone2_sdk, TARGET ap
#######################################
make[1]: Entering directory `/opt/paparazzi'
GENERATE autopilots in /opt/paparazzi/var/aircrafts/ardrone2_sdk/ap/generated/
make[1]: Leaving directory `/opt/paparazzi'
make[1]: Entering directory `/opt/paparazzi'
make[1]: Nothing to be done for `radio_ac_h'.
make[1]: Leaving directory `/opt/paparazzi'
make[1]: Entering directory `/opt/paparazzi'
make[1]: Nothing to be done for `flight_plan_ac_h'.
make[1]: Leaving directory `/opt/paparazzi'
cd sw/airborne; make -j1 TARGET=ap all
make[1]: Entering directory `/opt/paparazzi/sw/airborne'
/opt/paparazzi/conf/Makefile.arm-linux-toolchain:20: *** Error: arm-linux-gnueabi-gcc cross-compiler not found! Please install the gcc-arm-linux-gnueabi package..  Stop.
make[1]: Leaving directory `/opt/paparazzi/sw/airborne'
make: *** [ap.compile] Error 2
make: Leaving directory `/opt/paparazzi'

FAILED 'make -C /opt/paparazzi -f Makefile.ac AIRCRAFT=ardrone2_sdk  ap.upload' with code 2

Ich habe bereits mir gcc-arm-none-eabi-4_7-2013q2 runtergeladen, da dies ja auch fürs kompilieren von Paparazzi notwendig war, jedoch habe ich weiterhin den Fehler. Auch das installieren von gcc-arm-none-eabi aus den Jessie Repo, sowie ia32 hat nichts geholfen. Jede Hilfe ist willkommen :)

Grüße
betaros
 
Befindet sich das Programm 'arm-linux-gnueabi-gcc' im $PATH deines Rechners? Wird ggf. im Makefile der PATH irgendwo gesetzt, so dass die Datei nicht gefunden wird?
 
Vielen Dank für die schnelle Hilfe! Ich habe mir nochmal die PATH Variable angeschaut und die sehen bei mir nun folgender maßen:

User:
Code:
kasimir@debian-vm:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/paparazzi/arm-multilib/arm-none-eabi/bin

Root:
Code:
root@debian-vm:/home/kasimir# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/paparazzi/arm-multilib/arm-none-eabi/bin

Jedoch hilft dies leider nicht weiter :(

Die Makefile sieht folgendermaßen aus:
Code:
# Hey Emacs, this is a -*- makefile -*-

#
# Copyright (C) 2012 - TU Delft Robotics Minor - Dino Hensen and Freek van Tienen
#
# Minimal makefile for arm-linux-gnueabi or arm-none-linux-gnueabi toolchain.
# Assuming installed in default location.

PREFIX ?= arm-linux-gnueabi

#
# if gcc can't be found in path, try the codesourcery toolchain in /usr/local/codesourcery
#
ifeq ($(shell which $(PREFIX)-gcc),)
  TOOLCHAIN=$(shell find -L /usr/local/codesourcery -maxdepth 2 -type d -name arm-none-linux-gnueabi 2>/dev/null | head -n 1)
  ifneq ($(TOOLCHAIN),)
    PREFIX=$(shell dirname $(TOOLCHAIN))/bin/arm-none-linux-gnueabi
  else
    # no suitable toolchain found...
    $(error Error: arm-linux-gnueabi-gcc cross-compiler not found! Please install the gcc-arm-linux-gnueabi package.)
  endif
else
  # this was previously explicitly added, but shouln't be needed...
  #CFLAGS += -I/usr/arm-linux-gnueabi/include
endif

CC   = $(PREFIX)-gcc
LD   = $(PREFIX)-gcc
AR   = $(PREFIX)-ar
CP   = $(PREFIX)-objcopy
DMP  = $(PREFIX)-objdump
NM   = $(PREFIX)-nm
SIZE = $(PREFIX)-size
GDB  = $(PREFIX)-gdb

# some general commands
RM = rm
 
Hm... dein Makefile scheint ja gar nicht in $PATH zu suchen, sondern das Toolchain-Directory zu verwenden. Was gibt dir denn der im Makefile verwendete Befehl aus?

Code:
find -L /usr/local/codesourcery -maxdepth 2 -type d -name arm-none-linux-gnueabi

Kannst du denn das Programm arm-linux-gnueabi-gcc (PREFIX ?= arm-linux-gnueabi -> CC = $(PREFIX)-gcc) im Terminal aufrufen? Was sagt 'which arm-linux-gnueabi-gcc'?
 
Code:
kasimir@debian-vm:~$ which arm-linux-gnueabi-gcc                                                                                                                                                                                                                               
kasimir@debian-vm:~$ find -L /usr/local/codesourcery -maxdepth 2 -type d -name arm-none-linux-gnueabi                                                                                                                                                                          
find: "/usr/local/codesourcery": No such file or directory                                                                                                                                                                                                                     
kasimir@debian-vm:~$ arm-linux-gnueabi-gcc (PREFIX ?= arm-linux-gnueabi -> CC = $(PREFIX)-gcc)                                                                                                                                                                                 
bash: Syntaxfehler beim unerwarteten Wort `PREFIX'

Es sieht so aus, als ob er das Tool nicht findet, obwohl ich den Pfad ja angegeben habe :(
 
Dann solltest du mal schauen wo das Compiler-Binary auf deiner Platte ist und das Makefile entsprechend anpassen.
 
Das Anpassen der Makefile hat geholfen, vielen Dank für den Tipp und die Hilfe! :winke:
 

Ähnliche Themen

Installation von monitord unter Debian wheezy

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Installationsabbruch

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben