jcmvbkbc
New member
Да, из аттача процитированного сообщения.Последний пример?
Да, из аттача процитированного сообщения.Последний пример?
Cущественное отличие от моей конфигурации -- отсутствует ключ --disable-__cxa_atexitгде-то так:
c:\Espressif\xtensa-lx106-elf\bin>"xtensa-lx106-elf-g++.exe" -v
Using built-in specs.
COLLECT_GCC=xtensa-lx106-elf-g++.exe
COLLECT_LTO_WRAPPER=c:/espressif/xtensa-lx106-elf/bin/../libexec/gcc/xtensa-lx106-elf/4.8.2/lto-wrapper.exe
Target: xtensa-lx106-elf
Configured with: ../configure --prefix=/home/Mobyfab/xtensa/xtensa-lx106-elf --target=xtensa-lx106-elf --enable-multilib --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-ld --with-gmp=/home/Mobyfab/xtensa/build/gmp --with-mpfr=/home/Mobyfab/xtensa/build/mpfr --with-mpc=/home/Mobyfab/xtensa/build/mpc --enable-languages=c,c++ --with-newlib --disable-libsspThread model: single gcc version 4.8.2 (GCC)
Да, конечно.П.с.: думаю, на "ты" будет проще. Если вы не против )
Не можешь. Это ключ для сборки компилятора.Или не попробую, т.к., как я понял, через флаги компиляции я добавить его не могу?
Эту ошибку можно побороть так же, как не работающие конструкторы - просто добавить объявление в eagle.app. За правильность метода не поручусь но вроде бы работает как надо, в том числе локальные деструкторы у меня отрабатывают.Пока у вас вылезает __dso_handle большого смысла разбираться со всем остальным нет. Что вам выводит xtensa-lx106-elf-g++ -v ?
Можно, а зачем? И зачем в eagle.app.ld? И почему в такое место? Можно просто глобальную переменную такую завести, void *__dso_handle = 0; тоже должно работать.Эту ошибку можно побороть так же, как не работающие конструкторы - просто добавить объявление в eagle.app.
Что такое "локальные деструкторы"? Деструкторы объектов на стеке? Но они и так работают.За правильность метода не поручусь но вроде бы работает как надо, в том числе локальные деструкторы у меня отрабатывают.
undefined reference to `std::string::_Rep::_S_empty_rep_storage'
undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
Надо stdc++ добавить в LIBSЕще из ограничений касательно C++, с которыми я столкнулся, - не работает std::string, причем только часть функций...
Предполагаю что не хватает какой-то линковки но пока не вникал в данный вопрос.
Да, похоже виндовые скрипты её не собирают.Ее еще не собирали под ESP? В дистрибутиве вижу только H-ник.
Её можно построить в процессе финальной сборки gcc, цели make называются all-target-libstdc++-v3 и install-target-libstdc++-v3Вообще, конечно, было бы очень хорошо иметь все в одном комплекте
На маленькой железячке будет только то, что реально использовано/вытянуто по зависимостям.нужна ли вся стандартная библиотека на маленькой железячке.
У меня такие ключи сборки, могу добавить и другие, только скажите какие правильнееCущественное отличие от моей конфигурации -- отсутствует ключ --disable-__cxa_atexit
@CHERTS есть ли этот ключ в твоих скриптах сборки? Если нет -- можешь добавить этот ключ в опции configure gcc?
Да, конечно.
C:\Espressif\xtensa-lx106-elf\bin>xtensa-lx106-elf-g++.exe -v
Using built-in specs.
COLLECT_GCC=C:\Espressif\xtensa-lx106-elf\bin\xtensa-lx106-elf-g++.exe
COLLECT_LTO_WRAPPER=c:/espressif/xtensa-lx106-elf/bin/../libexec/gcc/xtensa-lx106-elf/4.8.2/lto-wrapper.exe
Target: xtensa-lx106-elf
Configured with: ../configure --prefix=/d/Neo/ESP/xtensa-lx106-elf --target=xtensa-lx106-elf --enable-multilib --disable-nls --disable-shared --disable-threads --with-gnu-as --with-gnu-l
d --with-gmp=/d/Neo/ESP/build/gmp --with-mpfr=/d/Neo/ESP/build/mpfr --with-mpc=/d/Neo/ESP/build/mpc --enable-languages=c,c++ --with-newlib --disable-libssp
Thread model: single
gcc version 4.8.2 (GCC)
Как минимум --disable-__cxa_atexit в configure обеих стадий gcc.У меня такие ключи сборки, могу добавить и другие, только скажите какие правильнее
У меня после сборки в C:\Espressif\xtensa-lx106-elf\xtensa-lx106-elf\lib\ присутствуютКак минимум --disable-__cxa_atexit в configure обеих стадий gcc.
По части libstdc++ я не понял, она строится/устанавливается или нет? В скрипте на который я смотрю финальный компилятор собирается просто make/make install.
При сборке crosstool-NG там списки целей: make all-gcc all-target-libgcc all-target-libstdc++-v3 для сборки и make install-gcc install-target-libgcc install-target-libstdc++-v3 для установки.
Тогда в части libstdc++ всё ОК.У меня после сборки в C:\Espressif\xtensa-lx106-elf\xtensa-lx106-elf\lib\ присутствуют