Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Трабл с gcc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Errorkpi
avr-gcc-462 avrlibc-1.7.1 трабл состоит в следующем не находит файлы с описанием контроллера:
Текст ошибки:
cannot find crtm16.o: Нет такого файла или каталога

Процесс компиляции с ключем -v
Код
**** Build of configuration Debug for project test5 ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc-462 -v -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
Using built-in specs.
COLLECT_GCC=avr-gcc-462
COLLECT_LTO_WRAPPER=/opt/cross/avr/lib/gcc/avr/4.6.2/lto-wrapper
Target: avr
Configured with: ../gcc-4.6.2/configure -v --prefix=/opt/cross/avr --exec-prefix=/opt/cross/avr --libdir=/opt/cross/avr/lib --libexecdir=/opt/cross/avr/lib --mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info --with-gnu-ld --with-gnu-as --target=avr --enable-languages=c,c++ --program-prefix=avr- --program-suffix=-462 --with-sys-root=/opt/cross/avr --disable-nls --disable-libssp --with-dwarf2 --without-ppl --without-cloog
Thread model: single
Finished building: ../main.c
gcc version 4.6.2 (GCC)

COLLECT_GCC_OPTIONS='-v' '-Wall' '-g2' '-gstabs' '-O0' '-fpack-struct' '-fshort-enums' '-std=gnu99' '-funsigned-char' '-funsigned-bitfields' '-mmcu=atmega16' '-D' 'F_CPU=1000000UL' '-MMD' '-MP' '-MF' 'main.d' '-MT' 'main.d' '-c' '-o' 'main.o'
/opt/cross/avr/lib/gcc/avr/4.6.2/cc1 -quiet -v -imultilib avr5 -MMD main.d -MF main.d -MP -MT main.d -D F_CPU=1000000UL ../main.c -quiet -dumpbase main.c -mmcu=atmega16 -auxbase-strip main.o -g2 -gstabs -O0 -Wall -std=gnu99 -version -fpack-struct -fshort-enums -funsigned-char -funsigned-bitfields -o /tmp/ccn0f7nh.s
Building target: test5.elf
Invoking: AVR C Linker
avr-gcc-462 -Wl,-Map,test5.map -mmcu=atmega16 -o "test5.elf"  ./main.o  
GNU C (GCC) version 4.6.2 (avr)
    compiled by GNU C version 4.3.4 [gcc-4_3-branch revision 152973], GMP version 4.2.3, MPFR version 2.3.2, MPC version 0.8.2
warning: GMP header version 4.2.3 differs from library version 4.3.2.
warning: MPFR header version 2.3.2 differs from library version 2.4.2.
warning: MPC header version 0.8.2 differs from library version 0.8.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/sys-include"
ignoring nonexistent directory "/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/cross/avr/lib/gcc/avr/4.6.2/include
/opt/cross/avr/lib/gcc/avr/4.6.2/include-fixed
End of search list.
GNU C (GCC) version 4.6.2 (avr)
    compiled by GNU C version 4.3.4 [gcc-4_3-branch revision 152973], GMP version 4.2.3, MPFR version 2.3.2, MPC version 0.8.2
warning: GMP header version 4.2.3 differs from library version 4.3.2.
warning: MPFR header version 2.3.2 differs from library version 2.4.2.
warning: MPC header version 0.8.2 differs from library version 0.8.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 7b378730845ee03e3aeeace7c8a64cfc
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g2' '-gstabs' '-O0' '-fpack-struct' '-fshort-enums' '-std=gnu99' '-funsigned-char' '-funsigned-bitfields' '-mmcu=atmega16' '-D' 'F_CPU=1000000UL' '-MMD' '-MP' '-MF' 'main.d' '-MT' 'main.d' '-c' '-o' 'main.o'
/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/bin/as -v -mmcu=atmega16 -o main.o /tmp/ccn0f7nh.s
GNU assembler version 2.23.1 (avr) using BFD version (GNU Binutils) 2.23.1
COMPILER_PATH=/opt/cross/avr/lib/gcc/avr/4.6.2/:/opt/cross/avr/lib/gcc/avr/4.6.2/:/opt/cross/avr/lib/gcc/avr/:/opt/cross/avr/lib/gcc/avr/4.6.2/:/opt/cross/avr/lib/gcc/avr/:/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/bin/
LIBRARY_PATH=/opt/cross/avr/lib/gcc/avr/4.6.2/avr5/:/opt/cross/avr/lib/gcc/avr/4.6.2/:/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/lib/
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g2' '-gstabs' '-O0' '-fpack-struct' '-fshort-enums' '-std=gnu99' '-funsigned-char' '-funsigned-bitfields' '-mmcu=atmega16' '-D' 'F_CPU=1000000UL' '-MMD' '-MP' '-MF' 'main.d' '-MT' 'main.d' '-c' '-o' 'main.o'
/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/bin/ld: cannot find crtm16.o: Нет такого файла или каталога
/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make: *** [test5.elf] Ошибка 1
alx2
Цитата(Errorkpi @ Jul 3 2013, 18:16) *
avr-gcc-462 avrlibc-1.7.1 трабл состоит в следующем не находит файлы с описанием контроллера:
Текст ошибки:
cannot find crtm16.o: Нет такого файла или каталога

Это не файл с описанием контроллера, это стартап-модуль.
В чем Ваш вопрос? Почему не находит?
Если да, то скажите, где у Вас лежит этот файл. В /opt/cross/avr/lib/avr5 ?
Errorkpi
Нет в /usr/avr/lib/avr5
Все инклады и модули лежат в /usr/avr/

Ставил все со стандартными конфигурациями, ничего не шаманил

Вопрос как исправить?
Пробовал через Eclips пути указывать к инкладам ли либам - ноль реакции.
mdmitry
Цитата
Нет в /usr/avr/lib/avr5

Все инклады и модули лежат в /usr/avr/

/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/bin/ld

Проверьте, не установлены ли у Вас две версии Avr-gcc в разные места или ставили какие-то дополнения отдельно. Также стоит проверить переменные окружения для запуска компилятора и makefile на предмет корректности команд (посмотрите вывод make -n all)
Errorkpi
Цитата
Также стоит проверить переменные окружения для запуска компилятора

Можно поподробнее?

Цитата
makefile на предмет корректности команд

Сгенерирован Eclipsom - думаю там все ок.

Да стоит 2 версии avr-gcc. Но все ставилось со стандартными настройками. Но библиотеки, насколько я понял, лежат в одном и томже месте (/usr/avr/ ) у обоих.

Может стоит снести обе и поставить заново?


Снес оба и поставил один (462) - все так же.

Положил в папку проекта - нашло, но теперь ругается вот так:
/opt/cross/avr/lib/gcc/avr/4.6.2/../../../../avr/bin/ld: cannot find -lc
alx2
Цитата(Errorkpi @ Jul 4 2013, 19:21) *
Нет в /usr/avr/lib/avr5

А gcc-то об этом и не знает!
Цитата(Errorkpi @ Jul 3 2013, 18:16) *
Configured with: ../gcc-4.6.2/configure -v --prefix=/opt/cross/avr --exec-prefix=/opt/cross/avr --libdir=/opt/cross/avr/lib --libexecdir=/opt/cross/avr/lib --mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info --with-gnu-ld --with-gnu-as --target=avr --enable-languages=c,c++ --program-prefix=avr- --program-suffix=-462 --with-sys-root=/opt/cross/avr --disable-nls --disable-libssp --with-dwarf2 --without-ppl --without-cloog

Почему же Вы конфигурируете с --libdir=/opt/cross/avr/lib, если библиотеки у Вас лежат не в /opt/cross/avr/lib, а в /usr/avr/lib?
Вы определитесь с расположением библиотек, и
- либо конфигурируйте gcc с --libdir=/usr/avr/lib;
- либо устанавливайте библиотеки в /opt/cross/avr/lib;
- либо, в крайнем случае (если по каким-то непонятным мне причинам Вы не хотите сообщить gcc реальное расположение библиотек при его конфигурации), указывайте расположение библиотек с помощью -L при линковке...
mdmitry
Цитата
А gcc-то об этом и не знает!
Почему же Вы конфигурируете с --libdir=/opt/cross/avr/lib, если библиотеки у Вас лежат не в /opt/cross/avr/lib, а в /usr/avr/lib?

Сгенерирован Eclipsom - думаю там все ок.


Похоже, что makefile сделанный Eclipse не совсем корректный. Предполагаю, что Eclipse берёт стандартный путь к компилятору. На форуме была куча рукописных makefile, можете посмотреть (предпочитаю сам писать и давно выкладывал).

Все-таки вывод make -n all покажите.

В качестве пожелания: лучше использовать стандартные для кросс-компилятора пути расположения его составных частей.
_Pasha
Пропишите в настройках проекта правильные пути к либам или ссылку создайте на то место, где они лежат, в /opt/cross
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.