Перейти к содержанию
    

Не собирается пример под GCC

Добрый день.

Пытаюсь собрать пример для GCC в Ubuntu 14.

В процессе возникает ошибка:

--- linking...
/usr/lib/gcc/arm-none-eabi/4.8.2/../../../arm-none-eabi/bin/ld: cannot find -lstdc++

Как я понимаю, линкер не может найти библиотеку stdc++.

Где она может находиться и как указать правильный путь к ней?

Конечно, это вопрос больше относится к работе в linux, нежели собственно к scmRTOS, но все же надеюсь на помощь :laughing:

Изменено пользователем Harvester

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где брали примеры? Какой конкретно из примеров вы пытаетесь собрать? Вносили ли вы изменения в makefile?

(Я под линуксом работаю, и проверяю в первую очередь именно в нём).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где брали примеры? Какой конкретно из примеров вы пытаетесь собрать? Вносили ли вы изменения в makefile?

(Я под линуксом работаю, и проверяю в первую очередь именно в нём).

Архив scmRTOS.4.00.all-platform.rar из scmRTOS

Примеры: любой для STM32F1XX под GCC. Ничего не менял - просто распаковал папку.

 

P.S. В Eclipse под Windows тоже не собирается, но это разговор для другой ветки

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм. Проверил - собирается:

~/tmp/scmrtos4/STM32F1XX/1-EventFlag $ make
--- building 1-EventFlag
--- compiling ./src/main.cpp...
--- compiling ../SamplesCommon/sysinit.cpp...
--- compiling ../scmRTOS/Common/OS_Kernel.cpp...
--- compiling ../scmRTOS/Common/OS_Services.cpp...
--- compiling ../scmRTOS/Common/usrlib.cpp...
--- compiling ../scmRTOS/CortexM3/OS_Target_cpp.cpp...
--- compiling ../SamplesCommon/startup.c...
--- assembling ../scmRTOS/CortexM3/OS_Target_asm.S...
--- linking...
--- make binary...
--- making asm-lst...
   text    data     bss     dec     hex filename
   1736       0    1672    3408     d50 ./exe/1-EventFlag.elf
Errors: none

А что у вас за тулчейн? Откуда взяли и как ставили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм. Проверил - собирается:

...

А что у вас за тулчейн? Откуда взяли и как ставили?

Мне дали VMware-образ Ubuntu, в котором все уже вроде как настроено (основной проект, с которым мне предстоит работать, собирается).

Тулчейн ARM GCC 4.8.2 (arm-none-eabi-...) в папке /usr/bin/

 

Я попробовал сам поставить более новый (gcc-arm-none-eabi-5_2-2015q4-20151219-linux.tar.bz2) по инструкции с http://gnuarmeclipse.github.io/toolchain/install/.

Но с этим возникла другая непонятная мне проблема:

Даже если перейти в папку, где установлены утилиты тулчейна, то все равно запускаются ранее установленные утилиты из /usr/bin/.

canis@CanisUbntVM:/usr/local/gcc-arm-none-eabi-5_2-2015q4/bin$ arm-none-eabi-g++ --version
arm-none-eabi-g++ (4.8.2-14ubuntu1+6) 4.8.2

, а если запускать их из папки проекта через полный путь, то командный процессор их не видит

canis@CanisUbntVM:~/scm/1-EventFlag$ /usr/local/gcc-arm-none-eabi-5_2-2015q4/bin/arm-none-eabi-g++ --version
bash: /usr/local/gcc-arm-none-eabi-5_2-2015q4/bin/arm-none-eabi-g++: No such file or directory

Изменено пользователем Harvester

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут, к сожалению, не подскажу - не сталкивался с таким. Видимо, какие-то ограничения. Попробуйте установить в /opt.

И ещё, забыл написать сразу - 4.0 - уже довольно давняя версия, сейчас актуальна версия 5.0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут, к сожалению, не подскажу - не сталкивался с таким. Видимо, какие-то ограничения. Попробуйте установить в /opt.

И ещё, забыл написать сразу - 4.0 - уже довольно давняя версия, сейчас актуальна версия 5.0.

Если не сложно, опишите, как у Вас настроена рабочая среда. Спасибо

Update:

Текущий тулчейн был установлен через центр ПО Ubuntu. Удалил его и поставил 4.9 с launchpad через PPA. Он встал тоже в /usr/bin/. Теперь примеры scmRTOS собираются, а вот мой старый проект не компилируется. Неужели в linux нельзя одновременно поставить две версии тулчейна?

Изменено пользователем Harvester

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не сложно, опишите, как у Вас настроена рабочая среда. Спасибо

Я скачал архив с https://launchpad.net/gcc-arm-embedded, распаковал его в /opt, и добавил его /bin в PATH.

Текущий тулчейн был установлен через центр ПО Ubuntu. Удалил его и поставил 4.9 с launchpad через PPA. Он встал тоже в /usr/bin/. Теперь примеры scmRTOS собираются, а вот мой старый проект не компилируется. Неужели в linux нельзя одновременно поставить две версии тулчейна?

Скорее всего, тот тулчейн, который был у вас установлен в образе виртуалки, был каким-то образом специально допилен. От этого и все проблемы.

А насчёт нескольких тулчейнов - пожалуйста, ставьте, просто не добавляйте их в PATH, и указывайте полный путь при запуске. (По вашей ссылке как раз про такой способ написано).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался, в чем было дело!

Тулчейн 32-битный, а система 64-битная.

Поставил 32-битные библиотеки и все заработало

dpkg --add-architecture i386 
apt-get update 
apt-get install libc6:i386 zlib1g:i386

Теперь осталось с Eclips-ом разобраться

Изменено пользователем Harvester

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...