Forum: Mikrocontroller und Digitale Elektronik ARM toolchain Linux Ubuntu - Include Link Problem


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

habe ein Olimex Board LPC-P2148 und habe das ARM Toolchain so wie hier 
installiert:
http://embdev.net/articles/ARM_GCC_toolchain_for_Linux_and_Mac_OS_X#Installation

Das kompilieren an sich funktioniert, flashen mit lpc21isp funktioniert 
auch, nun versuche ich ein Beispiel von "Martin THOMAS" mit dem 
etnsprechende Makefile zu kompilieren klappt aber mit dem inclulde 
Dateien leider nicht ganz.

Toolchain ist in Verzeichnis:

/usr/local/arm/

darunter:

arm-elf/include und hier habe ich dem Ornder "arch" von WinAVR mit 
weitere Header Dateien kopiert.

Wenn ich folgendes kompilieren will:

1
#include <stdio.h>
2
#include <errno.h>
3
/* from newlib-lpc */
4
#include <arch/philips/newlib-lpc/lpc210x.h>
5
#include <arch/philips/newlib-lpc/dev_cntrl.h>
6
#include <arch/philips/newlib-lpc/lpc_ioctl.h>
7
#include <arch/philips/newlib-lpc/lpc_sys.h>
8
9
// olimex LPC-P2106: one led on P0.7 (active low)
10
#define LEDPIN  7
11
// olimex LPC-P2106: one switch on P0.31 (active low)
12
#define SWPIN   31
13
14
/**** Device table.  List of device drivers for newlib.  ****/
15
  const struct device_table_entry *device_table[] = {
16
    &com1,  /* stdin  */
17
    &com1,  /* stdout */
18
    &com1,  /* stderr */
19
    0 
20
  };  /* end of list */
21
22
und so weiter ....

Gibt der Compiler folgende Fehlermeldung:
1
/usr/local/arm/lib/gcc/arm-elf/4.1.0/../../../../arm-elf/bin/ld: cannot find -lnewlib-lpc
2
collect2: ld gab 1 als Ende-Status zurück

Bedeutet, dass der Compiler dem Orner "newlib-lpc" wo anders haben will? 
wenn ja wie kann ich das ändern? bin leider nicht so fit mit Makefile.

Makefile in Anhang.

Danke in voraus.
Gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist eine Linkerfehlermeldung. Wie rufst Du den Linker auf, und wo 
liegt die Library, die Du verwenden willst? Hast Du überhaupt eine 
Library, oder hast Du nur 'ne Handvoll Headerdateien und dazugehörigen 
Sourcecode?

von Harry L. (mysth)


Lesenswert?

Da fehlt der Pfad zu newlib-lpc im Library-Pfad.
ggf. im Makefile anpassen.

von Martin (Gast)


Lesenswert?

Harry L. schrieb:
> Da fehlt der Pfad zu newlib-lpc im Library-Pfad.
> ggf. im Makefile anpassen.

Genau!
Leider kenne mich nicht viel aus mit Makefiles und weiss nicht genau wo 
ich es ändern kann.

von Martin (Gast)


Lesenswert?

Ich hatte in Makefile hier was ergänzt:

1
# List any extra directories to look for include files here.
2
#     Each directory must be seperated by a space.
3
#EXTRAINCDIRS = ./include
4
EXTRAINCDIRS = ./include/arch



 aber leider kein Treffer.

von Martin (Gast)


Lesenswert?

ok ich habs

Rufus Τ. F. schrieb:
> Wie rufst Du den Linker auf, und wo
> liegt die Library, die Du verwenden willst? Hast Du überhaupt eine
> Library, oder hast Du nur 'ne Handvoll Headerdateien und dazugehörigen
> Sourcecode?

Habe die Library's kopiert und sehe da, funktiniert!

von Martin (Gast)


Lesenswert?

Vielen Dank!

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.