Проблема связывания объектов BREW под WinARM4.1x - PullRequest
1 голос
/ 05 июня 2009

Я пытаюсь использовать WinARM 4.1.1 для компиляции и связывания объектных файлов для проекта BREW. Я начал использовать эту страницу: http://brew.wardco.com/.

Первое, на что нужно обратить внимание, это то, что я успешно работал в рамках цепочки инструментов GNUDE. Когда я переключился на WinARM, я сначала включил его, пока не заметил, что у меня есть -Lc: / gnude / arm-elf / lib вместо -Lc: / WinARM / arm-elf / lib в моем пути к библиотеке компоновщика. Я, очевидно, не хочу, чтобы обе системы были в моей среде. При использовании пути к библиотеке WinARM я получаю следующие ошибки компоновщика:

c:/WinARM/arm-elf/lib\libsupc++.a(eh_personality.o): In function `read_encoded_value_with_base':
c:/winarms/gcc-4.1.1/gcc/unwind-pe.h:259: undefined reference to `abort'
c:/WinARM/arm-elf/lib\libsupc++.a(eh_personality.o): In function `base_of_encoded_value':
c:/winarms/gcc-4.1.1/gcc/unwind-pe.h:122: undefined reference to `abort'
c:/winarms/gcc-4.1.1/gcc/unwind-pe.h:122: undefined reference to `abort'
c:/WinARM/arm-elf/lib\libsupc++.a(eh_personality.o): In function `size_of_encoded_value':
c:/winarms/gcc-4.1.1/gcc/unwind-pe.h:90: undefined reference to `abort'
c:/WinARM/arm-elf/lib\libsupc++.a(eh_terminate.o): In function `__cxxabiv1::__terminate(void (*)())':
../../../../../gcc-4.1.1/libstdc++-v3/libsupc++/eh_terminate.cc:44: undefined reference to `abort'
c:/WinARM/arm-elf/lib\libsupc++.a(eh_terminate.o):../../../../../gcc-4.1.1/libstdc++-v3/libsupc++/eh_terminate.cc:46: more undefined references to `abort' follow
c:/WinARM/arm-elf/lib\libc.a(fopen.o): In function `_fopen_r':
fopen.c:(.text+0x48): undefined reference to `_open_r'
c:/WinARM/arm-elf/lib\libc.a(freer.o): In function `_malloc_trim_r':
mallocr.c:(.text+0x48): undefined reference to `_sbrk_r'
mallocr.c:(.text+0x64): undefined reference to `_sbrk_r'
mallocr.c:(.text+0x84): undefined reference to `_sbrk_r'
c:/WinARM/arm-elf/lib\libc.a(fseek.o): In function `_fseek_r':
fseek.c:(.text+0x158): undefined reference to `_fstat_r'
fseek.c:(.text+0x1b0): undefined reference to `_fstat_r'
c:/WinARM/arm-elf/lib\libc.a(makebuf.o): In function `__smakebuf':
makebuf.c:(.text+0x3c): undefined reference to `_fstat_r'
makebuf.c:(.text+0x110): undefined reference to `isatty'
c:/WinARM/arm-elf/lib\libc.a(mallocr.o): In function `_malloc_r':
mallocr.c:(.text+0x424): undefined reference to `_sbrk_r'
mallocr.c:(.text+0x4cc): undefined reference to `_sbrk_r'
c:/WinARM/arm-elf/lib\libc.a(stdio.o): In function `__sclose':
stdio.c:(.text+0xc): undefined reference to `_close_r'
c:/WinARM/arm-elf/lib\libc.a(stdio.o): In function `__sseek':
stdio.c:(.text+0x30): undefined reference to `_lseek_r'
c:/WinARM/arm-elf/lib\libc.a(stdio.o): In function `__swrite':
stdio.c:(.text+0x84): undefined reference to `_lseek_r'
stdio.c:(.text+0xac): undefined reference to `_write_r'
c:/WinARM/arm-elf/lib\libc.a(stdio.o): In function `__sread':
stdio.c:(.text+0xd0): undefined reference to `_read_r'
c:/WinARM/arm-elf/lib\libc.a(syswrite.o): In function `write':
syswrite.c:(.text+0x24): undefined reference to `_write_r'
C:\WinARM/lib/gcc/arm-elf/4.1.1/\libgcc.a(unwind-sjlj.o): In function `_Unwind_RaiseException_Phase2':
../../../gcc-4.1.1/gcc/unwind.inc:75: undefined reference to `abort'
C:\WinARM/lib/gcc/arm-elf/4.1.1/\libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_Resume':
../../../gcc-4.1.1/gcc/unwind.inc:238: undefined reference to `abort'
C:\WinARM/lib/gcc/arm-elf/4.1.1/\libgcc.a(unwind-sjlj.o): In function `_Unwind_SjLj_Resume_or_Rethrow':
../../../gcc-4.1.1/gcc/unwind.inc:263: undefined reference to `abort'
NMAKE : fatal error U1077: 'C:\WinARM\bin\arm-elf-ld.EXE' : return code '0x1'
Stop.

Я не уверен, как подойти к решению этого; кажется, что я просто где-то пропускаю путь, но какой путь? Я заметил, что в списке есть "пути: c: \ winarms \ gcc-4.1.1 ..." ... это не место на моем компьютере. Это ссылка на библиотеку?

Любое понимание будет оценено.

1 Ответ

0 голосов
/ 22 октября 2009

Вы пробовали c: \ WinARM \ lib \ gcc \ arm-elf \ 4.1.1? Ваш путь к lib также может зависеть от того, какой набор инструкций вы используете. Я использую что-то вроде c: \ blahblah \ WinARM \ lib \ gcc \ arm-elf \ 4.1.1 \ thumb, потому что я встраиваю большинство своих источников в набор инструкций thumb.

...