PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Compiler-Software unter Linux funktioniert nicht



karmic_koala
25.12.2009, 17:54
Hallo,
ich habe zu weihnachten den rp6 bekommen und bekomme avr-gcc für linux (karmic koala, kubuntu 9.10) von der mitgelieferten cd nicht zum laufen (fehlermeldung: binutils patching failed). Ich habe auch schon versucht über den paketmanager avr-gcc zu installieren, weiß aber nicht, wie ich damit meine quelltexte kompilieren soll. Im Internet finde ich oft lösungen mit makefiles die aber bei mir auch nur fehler produzieren und selber weiß ich auch nicht was in solchen makefiles drinstehn muss. kann mir jemand helfen?

s.o.
25.12.2009, 19:02
Für Zenwalk (basiert auf Slackware) hätte ich noch ein paar aktuelle Pakete, die gut funktionieren...

Es sieht so aus, als würden dir die Binutils fehlen, also Assembler und die damit verbundenen "Grundfunktionieren". Schau mal ob, avr-as oder so schon läuft bevor du den gcc compilierst.
Sonst gibts hier im Wiki noch einen Artikel, avr-gcc unter Linux im Wiki, der zwar das ganze etwas eigen macht, aber doch gut funktioniert. Hast du dir das schon mal angeschaut?

karmic_koala
25.12.2009, 19:38
Brauche ich überhaupt die tools von der cd? oder geht es auch mit den distributionseigenen tools?

kraut
26.12.2009, 09:20
Hallo karmic_koala
Ich habe so wie Du auch kubuntu 9.10 und verwende die Tools von ubuntu
von der CD habe ich nur die Beispielprogramme und den Loader. Mittlerweile habe ich allerdings den Loader und die Beispielprogramme durch die aktuelle Version von der Arexx HP ausgetauscht.Das kompilieren funktioniert ein wand frei. Der Paketmanager von ubuntu hat alles perfekt installiert.

Ach ja kompilieren geht ganz einfach Du öffnest eine eingabekonsole wechselst in ein Beispielprogramm Verzeichnis und machst ein make all.
Wenn man den Bluefish Editor verwendet kann man direkt aus dem Editor raus kompilieren. Über Extern >> Ausgabebox >> make O:)

karmic_koala
02.01.2010, 11:18
Habe die Pakete(gcc-avr, binutils-avr, avr-libc, gdb-avr) von avr installiert. Das Kompilieren von den Kontrollbeispielen funktioniert auch ganz gut, nur bei den "BaseExamples" bricht avr immer mit einer Fehlermeldung ab, beim ersten Beispiel mit den LED`s heißt es dann:
-------- begin --------
avr-gcc (GCC) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es
gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE.


Linking: RP6Base_LEDs.elf
avr-gcc -mmcu=atmega32 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=RP6Base_LEDs.o -I../../RP6Lib -I../../RP6Lib/RP6base -I../../RP6Lib/RP6common -std=gnu99 -MD -MP -MF .dep/RP6Base_LEDs.elf.d RP6Base_LEDs.o ../../RP6Lib/RP6base/RP6RobotBaseLib.o ../../RP6Lib/RP6common/RP6uart.o --output RP6Base_LEDs.elf -Wl,-Map=RP6Base_LEDs.map,--cref -lm
RP6Base_LEDs.o: In function `main':
/home/maximilian/RP6/RP6Examples/RP6BASE_EXAMPLES/Example_01_LEDs/RP6Base_LEDs.c:64: undefined reference to `setLEDs'
/home/maximilian/RP6/RP6Examples/RP6BASE_EXAMPLES/Example_01_LEDs/RP6Base_LEDs.c:77: undefined reference to `setLEDs'
/home/maximilian/RP6/RP6Examples/RP6BASE_EXAMPLES/Example_01_LEDs/RP6Base_LEDs.c:94: undefined reference to `setLEDs'
make: *** [RP6Base_LEDs.elf] Fehler 1

:(

Zu make all: Woher soll ich bei selbstgeschriebenen Programmen das makefile und das ganze drumherum bekommen?

SlyD
02.01.2010, 13:36
Lad die neuen Beispielprogramme runter:

http://www.arexx.com/rp6

Wie schon oft hier gepostet hat sich mal was am Compiler geändert.
Also:
Aktuelle Compiler Version --> aktuelle Beispielprogramme verwenden.


> Woher soll ich bei selbstgeschriebenen Programmen
> das makefile und das ganze drumherum bekommen?

Das Makefile musst Du selbst anpassen (ist eine normale Textdatei - s. RP6 Anleitung) also einfach eines aus den Beispielprogrammen kopieren.


Da viele da Probleme haben die Verzeichnisse richtig anzulegen (Die Ordnerstruktur muss EXAKT so sein wie bei den Beispielprogrammen!) gibt es hier ein Template:

http://www.arexx.com/rp6/downloads/RP6_project_template.zip

(einfach nur noch die aktuelle RP6Lib da an die passende Stelle kopieren)

MfG,
SlyD

karmic_koala
02.01.2010, 17:39
Vielen Dank!
Hat an den Beispielprogrammen gelegen! :) :Weihnacht

inka
29.01.2010, 13:08
hi allerseits,

ich versuche mich an ubuntu, mit mäßigem erfolg, in der anleitung bin ich auf seite 35, beim loader...

frage nach avr-gcc wird so beantwortet:

georg@eee:~$ avr-gcc --version
avr-gcc (GCC) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es
gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE.
frage nach java so:

georg@eee:~$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)
OpenJDK Client VM (build 14.0-b16, mixed mode, sharing)

start des loaders mit:
georg@eee:~/rp6$ cd RP6Loader
georg@eee:~/rp6/RP6Loader$ java -jar RP6Loader_lib.jar

erzeugt diese meldung / RP6Loader log file (rauskopiert)


SystemLogger started at: Fri Jan 29 13:56:00 CET 2010 (1264769760847)
JVM System Information:

java.runtime.name = OpenJDK Runtime Environment
sun.boot.library.path = /usr/lib/jvm/java-6-openjdk/jre/lib/i386
java.vm.version = 14.0-b16
java.vm.vendor = Sun Microsystems Inc.
java.vendor.url = http://java.sun.com/
path.separator = :
java.vm.name = OpenJDK Client VM
file.encoding.pkg = sun.io
sun.java.launcher = SUN_STANDARD
user.country = DE
sun.os.patch.level = unknown
java.vm.specification.name = Java Virtual Machine Specification
user.dir = /home/georg/rp6/RP6Loader
java.runtime.version = 1.6.0_0-b16
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
java.endorsed.dirs = /usr/lib/jvm/java-6-openjdk/jre/lib/endorsed
os.arch = i386
javax.accessibility.assistive_technologies = org.GNOME.Accessibility.JavaBridge
java.io.tmpdir = /tmp
line.separator =

java.vm.specification.vendor = Sun Microsystems Inc.
os.name = Linux
sun.jnu.encoding = UTF-8
java.library.path = /usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/jvm/java-6-openjdk/jre/../lib/i386:/usr/java/packages/lib/i386:/usr/lib/jni:/lib:/usr/lib
java.specification.name = Java Platform API Specification
java.class.version = 50.0
sun.management.compiler = HotSpot Client Compiler
os.version = 2.6.31-18-generic
user.home = /home/georg
user.zoneinfo.dir = /usr/share/javazi
user.timezone = Europe/Berlin
java.awt.printerjob = sun.print.PSPrinterJob
file.encoding = UTF-8
java.specification.version = 1.6
java.class.path = RP6Loader_lib.jar
user.name = georg
java.vm.specification.version = 1.0
java.home = /usr/lib/jvm/java-6-openjdk/jre
sun.arch.data.model = 32
user.language = de
java.specification.vendor = Sun Microsystems Inc.
java.vm.info = mixed mode, sharing
java.version = 1.6.0_0
java.ext.dirs = /usr/lib/jvm/java-6-openjdk/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /usr/lib/jvm/java-6-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/jsse.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rhino.jar:/usr/lib/jvm/java-6-openjdk/jre/classes
java.vendor = Sun Microsystems Inc.
file.separator = /
java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
sun.desktop = gnome
sun.cpu.isalist =


JVM Memory Information:
Free: 3643984 (3558 Kb)
Max: 532742144 (520256 Kb)
Total: 5177344 (5056 Kb)


Initializing...
RP6Loader Version: 1.4c
Last build: 28.03.2008
Loading Configuration...
Done!
Global->loadLocalizedText
Loading Board Library...
Done!
OS:LINUX
Initializing native communication library: RXTX
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java :1678)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at cls.ac.c(Unknown Source)
at cls.E.d(Unknown Source)
at cls.E.<init>(Unknown Source)
at cls.aq.<init>(Unknown Source)
at de.dsh.rp6loader.Init.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at de.dsh.rp6loader.Init.main(Unknown Source)
diirekt aus dem loaderfenster noch rauskopiert:

Logged Exception at 1264775191822: Global->loadConfig failed!
java.io.FileNotFoundException: config/rp6loader.cfg (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
at cls.J.a(Unknown Source)
at cls.aq.g(Unknown Source)
at cls.aq.<init>(Unknown Source)
at de.dsh.rp6loader.Init.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:532)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at de.dsh.rp6loader.Init.main(Unknown Source)
Logged Exception at 1264775192196: Could not open File: config/files.cfg
java.io.FileNotFoundException: config/boards.cfg (No such file or directory)



danach findet er nicht die *cfg files. Wo kann ich den pfad einstellen?

was kann ich jetzt noch tun?

danke für Euere hilfe...

kraut
30.01.2010, 10:27
Starte den Loader mal so
georg@eee:~/rp6/RP6Loader$ RP6Loader_linux.sh
wenn das nicht will dann so
georg@eee:~/rp6/RP6Loader$ sh RP6Loader_linux.sh

inka
30.01.2010, 12:53
hi,

beide versuche (von der konsole aus) werden mit "no such file or directory" quittiert...

kraut
30.01.2010, 13:00
Das Shell-script File, sollte natürlich in dem verzeichnis sein also in deinem RP6Loader-Ordner sollte das File RP6Loader_linux.sh sein, dann müsste das auch ohne Fehler starten.

SlyD
30.01.2010, 14:59
Hallo,

Du kannst auf die .sh Datei einfach doppelt draufklicken in nem Dateimanager!
(ggf. ausführbar machen vorher)

Aus der Shell heraus natürlich immer ./ davor sonst sucht er ja nicht im aktuellen Verzeichnis...

Oder einfach mal in die .sh Datei reinschauen, da steht der komplette Aufruf mit Library Verzeichnis drin.

MfG,
SlyD

inka
30.01.2010, 16:20
hi allerseits,
das ist der pfad zum loader: /home/georg/rp6/RP6Loader

das kommt als "dir" im loader verzeichnis:

config lib RP6Loader.exe RP6Loader_lib.jar RP6Loader_linux.sh RP6Loader_start.exe

trotzdem bekomme ich die meldung, dass er die datei/verzeichnis nicht gefunden hat, wenn ich der konsole eingebe:
~/rp6/RP6Loader$ RP6Loader_linux.sh

beim doppelklick im dolphin (dateimanager) auf die

RP6Loader_linux.sh

passiert nichts (die *.sh ist als ausführbar markiert)

noch ideen?

SlyD
30.01.2010, 16:25
Wie schon gesagt:
./ davor also
./RP6Loader_linux.sh
eintippen.
Oder eben die Datei im Texteditor öffnen und die Zeile die da drin steht direkt eingeben...

inka
12.06.2010, 16:56
hi allerseits,

eine weile lief alles, jetzt kommt plötzlich diese meldung:
-----------------
Failed to load Main-Class manifest attribute from RP6Loader_lib.jar
-----------------

was bedeutet das?

thanx...

SlyD
12.06.2010, 18:20
Tja genau das was da steht - soll ich übersetzen ;)
Er findet den Startpunkt von Programm nicht - irgendwas hast Du also anders gemacht als sonst.
Wie hast Du das programm gestartet und hast Du irgendwas am System (Java?) oder am RP6Loader (an dem startscript) geändert?

So ohne weitere Infos könnte ich Dir nur mal raten den RP6Loader nochmal neu runterzuladen.
(den config Ordner kannst Du vorher sichern dann sind alle Einstellungen und Dateien noch so wie vorher)

MfG,
SlyD

inka
12.06.2010, 18:35
naja, was hab ich gemacht? Eigentlich nix, nur ein paar wochen was anderes als RP6 :-(


die fehlermeldung kam beim versuch die datei "RP6Loader_linux.sh" direkt zu starten (doppelklick).

ansonsten
- gestartet habe ich es mit einem klick auf den button im panel

jetzt neu runtergeladen, die daten im verzeichnis damit überschrieben (bis auf config)

keine änderung, icon wird beim anklicken kurz mal "größer & nebliger" (wie halt bei ubuntu), sonst passiert nichts.

logfile sieht so aus:


RP6Loader log file

SystemLogger started at: Sat Jun 12 19:26:24 MESZ 2010 (1276363584765)
JVM System Information:

path.separator = :
java.vm.name = GNU libgcj
java.vm.specification.name = Java(tm) Virtual Machine Specification
java.runtime.version = 1.5.0
java.home = /usr/lib/jvm/java-1.5.0-gcj-4.4/jre
java.vm.specification.version = 1.0
line.separator =

java.vm.specification.vendor = Sun Microsystems Inc.
gnu.classpath.home.url = file:///usr/lib
gnu.gcj.progname = RP6Loader_lib.jar
gnu.classpath.version = 0.98
java.specification.version = 1.5
gnu.java.util.zoneinfo.dir = /usr/share/zoneinfo
java.library.path = ./lib
gnu.classpath.vm.shortname = libgcj
java.class.version = 49.0
java.specification.name = Java(tm) Platform API Specification
os.version = 2.6.31-22-generic
gnu.classpath.home = /usr
user.home = /home/georg
file.encoding = UTF-8
os.name = Linux
user.name = georg
java.class.path = RP6Loader_lib.jar
java.io.tmpdir = /tmp
os.arch = i386
java.fullversion = GNU libgcj 4.4.1
user.language = de
java.specification.vendor = Sun Microsystems Inc.
user.dir = /home/georg/rp_6/RP6Loader
java.vm.info = GNU libgcj 4.4.1
java.version = 1.5.0
java.ext.dirs = /usr/share/java/ext
sun.boot.class.path = /usr/lib/jvm/java-1.5.0-gcj-4.4/jre/lib/rt.jar
gnu.gcj.user.realname = georg,,,
java.vm.vendor = Free Software Foundation, Inc.
java.vendor.url = http://gcc.gnu.org/java/
java.vendor = Free Software Foundation, Inc.
file.separator = /
java.vm.version = 4.4.1
http.agent = gnu-classpath/0.98 (libgcj/4.4.1)
gnu.gcj.precompiled.db.path = /var/lib/gcj-4.4/classmap.db
gnu.cpu.endian = little
user.region = DE
gnu.gcj.runtime.endorsed.dirs = /usr/share/java/gcj-endorsed


JVM Memory Information:
Free: 1908736 (1864 Kb)
Max: 9223372036854775807 (9007199254740991 Kb)
Total: 6549504 (6396 Kb)


Null peer?!
Header Chunk. Image width:600 height:16 depth:8 color type:2 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:18 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:8 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:18 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:18 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:8 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:18 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:18 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:8 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:18 height:30 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:15 height:15 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:15 height:15 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:15 height:15 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Header Chunk. Image width:15 height:15 depth:8 color type:6 compression type:0 filter type:0 interlace:0
Initializing...
RP6Loader Version: 1.4c
Last build: 28.03.2008
Loading Configuration...
Done!
Global->loadLocalizedText
Loading Board Library...
Done!

könnte es an java liegen? bei java --version kommt:

java version "1.5.0"
gij (GNU libgcj) version 4.4.1

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SlyD
12.06.2010, 18:48
ja ne - das ist nicht das offizielle JRE von Sun (ähm ich meine Oracle die haben Sun ja gekauft ;) ). Das da ist was völlig anderes, hab ich noch nie vorher gesehen das jemand wirklich gcj benutzt.

Du musst auf jeden Fall das Sun JRE verwenden den gcj unterstüzt nicht mal Java 5 vollständig der RP6Loader braucht aber Java 6.

inka
13.06.2010, 15:15
und es geht, java 6 war auch schon installiert, k.a. woher das andere zeug kam...

danke...