Создание кросс-компилятора GCC для ARM VxWorksC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Создание кросс-компилятора GCC для ARM VxWorks

Сообщение Anonymous »

Я пытаюсь собрать кросс-компилятор с хоста Linux x86-64 (Ubuntu-22.04 в WSL, с GCC 11) для Arm-wrs-vxworks, и у меня возникли серьезные проблемы с выполнением так. У меня очень ограниченный опыт работы с кросс-компиляторами, и я думаю, что могу столкнуться с некоторыми простыми проблемами конфигурации.
Я пробовал использовать процедуры, подробно описанные в ответе Джонатана Уэйкли и в вики-ответе сообщества. в разделе «Как установить GCC по частям с помощью GMP, MPFR, MPC, ELF без общих библиотек?», безрезультатно.
В частности, это приводит к ошибке компилятора, связанной с C. ++17 стандарт:

Код: Выделить всё

tar xzf gcc-4.9.4.tar.gz
cd gcc-4.9.4
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.9.4/configure --prefix=$HOME/GCC-4.9.4 --target=arm-wrs-vxworks
make -j
make install
Я попытался увеличить целевую версию GCC до 8.1.0 и сохранить GCC хоста на уровне 11. Я также самостоятельно попытался сохранить целевую версию 4.9.4 и перейти на хост с GCC 7. (Обратите внимание, что сначала я попытался обновить целевой GCC до версии 12.1.0, хотя, похоже, в последних версиях поддержка VxWorks прекращена.) В обоих случаях я преодолеваю ошибку компилятора, связанную с C++17, но вижу то же самое. невозможно вычислить суффикс объектных файлов ошибка, о которой сообщили несколько других людей (см. ниже).
компиляция gcc, configure: ошибка: невозможно вычислить суффикс объектных файлов: невозможно скомпилировать< /p>
Компиляция LibGCC завершилась ошибкой: невозможно вычислить суффикс объектных файлов: невозможно скомпилировать
Компиляция Gcc «невозможно вычислить суффикс объектных файлов: невозможно скомпилировать»
Я пытался возиться с переменной LD_LIBRARY_PATH, переключать различные параметры конфигурации и многое другое, но безуспешно. Сборка и установка binutils вручную с помощью target=arm-wrs-vxworks также не дала никакого эффекта. (Даже избавление от опции --target в конфигурации GCC не полностью исправляет сборку — вместо этого я получаю сообщение об отсутствии sys/ustat.h.)Я также нашел ссылки на программу Crosstool-NG, которая показалась мне многообещающей. Я опробовал его, и, к сожалению, оказалось, что он вообще не поддерживает цели VxWorks.
Я также ознакомился со следующей документацией:
https://gcc.gnu.org/install/build.html
https://crosstool-ng.github.io/docs/too ... struction/
https://preshing.com/20141119/how-to-bu ... -compiler/
Кажется, ни одна из процедур не работает. . Как будто половина версий этих инструментов имеет готовые сбои, а другая половина несовместима с тем, что мне нужно.
Может быть, я что-то упускаю? это бы объяснило это? (Если я могу предоставить дополнительную информацию, которая может помочь сузить проблему, дайте мне знать.)
Изменить: просмотр в objdir/arm-wrs-vxworks/libgcc/config. log, я вижу ошибку о том, что WIND_BASE не определен. Установка префиксного пути позволяет решить эту проблему, но затем сразу же после этого выдается еще одна ошибка -march=armv4: not Found и возникает тот же окончательный суффикс объектных файлов.
Редактирование 2: удаление и пересоздание папки сборки GCC с WIND_BASE, определенной как папка префикса, я вижу, что проблема с суффиксом объектных файлов наконец-то исчезла. Однако теперь, похоже, отсутствует заголовок . Я пока не уверен, откуда это взялось, но подозреваю, что это тесно связано с WIND_BASE.

Подробнее здесь: https://stackoverflow.com/questions/787 ... rm-vxworks
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»