I inherited a multi file C code, with a task to port to ARM Linux platform.
After some corrections, all files compile properly but linker fails to link
with "undefined reference to *" report.
I checked all files, referenced functions are declared properly, but for
some reason they are not linked.
I also tried to reorder the linking order of object files, but it didn't
help.
The GCC (MOXA Xscale 3.3.2) reports this:
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c main.c -o main.o
-IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c globals.c -o
globals.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c serial.c -o
serial.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c logic.c -o
logic.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c UCOMS2.C -o
UCOMS2.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c io.c -o io.o
-IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c terminal.c -o
terminal.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c command.c -o
command.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c datetime.c -o
datetime.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c LogFile.c -o
LogFile.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c menu.c -o menu.o
-IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c nvdata.c -o
nvdata.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c Password.c -o
Password.o -IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -g -Wall -c odb.c -o odb.o
-IC:/UC/usr/local/mxscaleb/include
-IC:/UC/usr/local/mxscaleb/armv5b-linux/include
C:/UC/usr/local/mxscaleb/bin/mxscaleb-gcc.exe -Wl,-verbose main.o globals.o
serial.o logic.o UCOMS2.o io.o terminal.o command.o datetime.o LogFile.o
menu.o nvdata.o Password.o odb.o
-LC:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2/
-LC:/UC/usr/local/mxscaleb/lib/ -LC:/UC/usr/local/mxscaleb/armv5b-linux/lib/
-o upv2d
GNU ld version 2.14 20030612
Supported emulations:
armelf_linux
armelf
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
OUTPUT_FORMAT("elf32-
bigarm", "elf32-bigarm",
"elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SEARCH_DIR("/usr/local/mxscaleb/armv5b-linux/lib");
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = 0x00008000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.dyn :
{
*(.rel.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rel.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rel.dtors)
*(.rel.got)
*(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
*(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
*(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
*(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
}
.rela.dyn :
{
*(.rela.init)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rela.fini)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rela.ctors)
*(.rela.dtors)
*(.rela.got)
*(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
*(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
*(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
}
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init :
{
KEEP (*(.init))
} =0
.plt : { *(.plt) }
.text :
{
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.glue_7t) *(.glue_7)
} =0
.fini :
{
KEEP (*(.fini))
} =0
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
.note.gnu.arm.ident : { KEEP (*(.note.gnu.arm.ident)) }
.eh_frame_hdr : { *(.eh_frame_hdr) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = ALIGN(0x8000) + (. & (0x8000 - 1));
/* Ensure the __preinit_array_start label is properly aligned. We
could instead move the label definition inside the section, but
the linker would then create the section even if it turns out to
be empty, which isn't pretty. */
. = ALIGN(32 / 8);
PROVIDE (__preinit_array_start = .);
.preinit_array : { *(.preinit_array) }
PROVIDE (__preinit_array_end = .);
PROVIDE (__init_array_start = .);
.init_array : { *(.init_array) }
PROVIDE (__init_array_end = .);
PROVIDE (__fini_array_start = .);
.fini_array : { *(.fini_array) }
PROVIDE (__fini_array_end = .);
.data :
{
__data_start = . ;
*(.data .data.* .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
.eh_frame : { KEEP (*(.eh_frame)) }
.gcc_except_table : { *(.gcc_except_table) }
.dynamic : { *(.dynamic) }
.ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. */
KEEP (*crtbegin*.o(.ctors))
/* We don't want to include the .ctor section from
from the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
}
.dtors :
{
KEEP (*crtbegin*.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
}
.jcr : { KEEP (*(.jcr)) }
.got : { *(.got.plt) *(.got) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata :
{
*(.sdata .sdata.* .gnu.linkonce.s.*)
}
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
__bss_start__ = .;
.sbss :
{
PROVIDE (__sbss_start = .);
PROVIDE (___sbss_start = .);
*(.dynsbss)
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.scommon)
PROVIDE (__sbss_end = .);
PROVIDE (___sbss_end = .);
}
.bss :
{
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections. */
. = ALIGN(32 / 8);
}
. = ALIGN(32 / 8);
_end = .;
_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
}
==================================================
attempt to open
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/../../../../armv5b-linux/lib/crt1.o
succeeded
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/../../../../armv5b-linux/lib/crt1.o
attempt to open
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crti.o
succeeded
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crti.o
attempt to open
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crtbegin.o
succeeded
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crtbegin.o
attempt to open main.o succeeded
main.o
attempt to open globals.o succeeded
globals.o
attempt to open serial.o succeeded
serial.o
attempt to open logic.o succeeded
logic.o
attempt to open UCOMS2.o succeeded
UCOMS2.o
attempt to open io.o succeeded
io.o
attempt to open terminal.o succeeded
terminal.o
attempt to open command.o succeeded
command.o
attempt to open datetime.o succeeded
datetime.o
attempt to open LogFile.o succeeded
LogFile.o
attempt to open menu.o succeeded
menu.o
attempt to open nvdata.o succeeded
nvdata.o
attempt to open Password.o succeeded
Password.o
attempt to open odb.o succeeded
odb.o
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.so failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a succeeded
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_addsub_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_mul_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_div_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_si_to_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_sf_to_si.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_sf_to_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_thenan_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_addsub_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_mul_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_div_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_gt_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_df_to_si.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_make_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_df_to_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_thenan_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_lshrdi3.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_pack_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_unpack_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_make_sf.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_pack_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_unpack_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_fpcmp_parts_df.oS
(C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a)_ashldi3.oS
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc_eh.so failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc_eh.a
succeeded
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libc.so failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libc.a failed
attempt to open C:/UC/usr/local/mxscaleb/lib//libc.so failed
attempt to open C:/UC/usr/local/mxscaleb/lib//libc.a failed
attempt to open C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc.so succeeded
opened script file C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc.so
opened script file C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc.so
attempt to open libc.so.6 failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libc.so.6 failed
attempt to open C:/UC/usr/local/mxscaleb/lib//libc.so.6 failed
attempt to open C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc.so.6
succeeded
libc.so.6 (C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc.so.6)
attempt to open libc_nonshared.a failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libc_nonshared.a
failed
attempt to open C:/UC/usr/local/mxscaleb/lib//libc_nonshared.a failed
attempt to open C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc_nonshared.a
succeeded
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.so failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc.a succeeded
attempt to open C:/UC/usr/lmain.o(.text+0x78): In function `main':
/cygdrive/c/Sandbox/uProcessor_V2/main.c:108: undefined reference to
`init_packet'
main.o(.text+0x184):/cygdrive/c/Sandbox/uProcessor_V2/main.c:140: undefined
reference to `make_packet'
main.o(.text+0x194):/cygdrive/c/Sandbox/uProcessor_V2/main.c:142: undefined
reference to `poll_packet'
main.o(.text+0x25c): In function `Kernel':
/cygdrive/c/Sandbox/uProcessor_V2/main.c:211: undefined reference to
`poll_packet'
main.o(.text+0x2a4):/cygdrive/c/Sandbox/uProcessor_V2/main.c:219: undefined
reference to `poll_packet'
main.o(.text+0x2f0):/cygdrive/c/Sandbox/uProcessor_V2/main.c:227: undefined
reference to `poll_packet'
logic.o(.text+0x14): In function `logic_init':
/cygdrive/c/Sandbox/uProcessor_V2/logic.c:31: undefined reference to
`init_packet'
logic.o(.text+0x20):/cygdrive/c/Sandbox/uProcessor_V2/logic.c:32: undefined
reference to `init_packet'
logic.o(.text+0x110): In function `logic_cmd':
/cygdrive/c/Sandbox/uProcessor_V2/logic.c:57: undefined reference to
`make_packet'
logic.o(.text+0x130):/cygdrive/c/Sandbox/uProcessor_V2/logic.c:58: undefined
reference to `make_packet'
logic.o(.text+0x214):/cygdrive/c/Sandbox/uProcessor_V2/logic.c:74: undefined
reference to `make_packet'
logic.o(.text+0x234):/cygdrive/c/Sandbox/uProcessor_V2/logic.c:75: undefined
reference to `make_packet'
logic.o(.text+0x288):/cygdrive/c/Sandbox/uProcessor_V2/logic.c:82: undefined
reference to `make_packet'
logic.o(.text+0x2a8):/cygdrive/c/Sandbox/uProcessor_V2/logic.c:83: more
undefined references to `make_packet' follow
UCOMS2.o(.text+0xa70): In function `send_packet(int, unsigned char*)':
/cygdrive/c/Sandbox/uProcessor_V2/UCOMS2.C:309: undefined reference to
`delay_ms(int)'
io.o(.text+0x14): In function `io_init':
/cygdrive/c/Sandbox/uProcessor_V2/io.c:25: undefined reference to
`init_packet'
io.o(.text+0xec): In function `io_cmd':
/cygdrive/c/Sandbox/uProcessor_V2/io.c:54: undefined reference to
`make_packet'
io.o(.text+0x124):/cygdrive/c/Sandbox/uProcessor_V2/io.c:57: undefined
reference to `make_packet'
io.o(.text+0x160):/cygdrive/c/Sandbox/uProcessor_V2/io.c:64: undefined
reference to `make_packet'
io.o(.text+0x198):/cygdrive/c/Sandbox/uProcessor_V2/io.c:67: undefined
reference to `make_packet'
io.o(.text+0x1cc):/cygdrive/c/Sandbox/uProcessor_V2/io.c:71: undefined
reference to `make_packet'
io.o(.text+0x20c):/cygdrive/c/Sandbox/uProcessor_V2/io.c:75: more undefined
references to `make_packet' follow
ocal/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc_eh.so failed
attempt to open
C:/UC/usr/local/mxscaleb/lib/gcc-lib/armv5b-linux/3.3.2//libgcc_eh.a
succeeded
attempt to open
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crtend.o
succeeded
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crtend.o
attempt to open
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crtn.o
succeeded
C:/UC/usr/local/mxscaleb/bin/../lib/gcc-lib/armv5b-linux/3.3.2/crtn.o
ld-linux.so.2 needed by C:/UC/usr/local/mxscaleb/armv5b-linux/lib//libc.so.6
found ld-linux.so.2 at
/usr/local/mxscaleb/armv5b-linux/bin/../lib/ld-linux.so.2
collect2: ld returned 1 exit status
make: *** [debug] Error 1
Process terminated with status 2 (0 minutes, 8 seconds)
22 errors, 0 warnings
I am new in GCC and Linux, an electronics engineer not a programmer.
Can anybody help?
Regards,
Pedja
_________________________________________________________________
Find a baby-sitter FAST with MSN Search! http://search.msn.ie/