Официальный форум СВД Встраиваемые Системы
19 Апрель, 2024, 09:45:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: ошибка кросскомпиляции ПО для QNX 6.6  (Прочитано 1462 раз)
andybeg
Пользователь

Сообщений: 13


« : 28 Август, 2019, 15:22:21 »

среда разработки ubuntu 19.04 целевая платформа IMX6 GCC 4.9.3
голову сломал
собираю проект - делаю ./configure, а мне выдается
configure: error: C compiler cannot create executables

в config.log вот такое
configure:3399: checking whether the C compiler works
configure:3421: arm-unknown-nto-qnx6.6.0eabi-gcc  -O2 -pipe -g -feliminate-unused-debug-types   -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fPIC conftest.c  >&5
as: unrecognized option '-EL'
configure:3425: $? = 2
configure:3463: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "OpenFst"
| #define PACKAGE_TARNAME "openfst"
| #define PACKAGE_VERSION "1.7.3"
| #define PACKAGE_STRING "OpenFst 1.7.3"
| #define PACKAGE_BUGREPORT "help@www.openfst.org"
| #define PACKAGE_URL ""
| #define PACKAGE "openfst"
| #define VERSION "1.7.3"
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:3468: error: in `/media/data/QNX/openfst-1.7.3':
configure:3470: error: C compiler cannot create executables
See `config.log' for more details

почему то берется системный as а не тулчейный, сделал символическую ссылку на тулчейный и эта ошибка ушла, но это не красиво и адов хак
с тулчейном идущем в комплекте с SDP 6.6 такого не случалось
Записан
Игорь Рондарев
Модератор
Опытный пользователь

Сообщений: 282

Сотрудник СВД ВС


WWW
« Ответ #1 : 28 Август, 2019, 15:55:55 »

При кросс-компиляции проектов, базирующихся на Autotools, в общем случае достаточно опции --host=<triplet> вместо явного переопределения переменных CC, AS, LD и т.д. Поэтому, как вариант, попробуйте убрать из окружения все переменные, переопределяющие инструментарий по умолчанию (из них можно при необходимости оставить только *FLAGS-переменные), и выполнить
Код:
./configure --host=arm-unknown-nto-qnx6.6.0eabi
; в большинстве случаев ./configure успешно справляется со своей задачей.
Записан

andybeg
Пользователь

Сообщений: 13


« Ответ #2 : 28 Август, 2019, 16:11:12 »

>>; в большинстве случаев ./configure успешно справляется со своей задачей.
это был шаг отчаяния

в настройках окружения оставил только это

export QNX_TARGET=/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/target/qnx6
export QNX_HOST=/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/host/linux/x86
export QNX_CONFIGURATION=/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/.qnx
export MAKEFLAGS=-I/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/target/qnx6/usr/include
export PATH=/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/host/linux/x86/usr/bin:/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/.qnx/bin:/media/data/QNX/bin/linux-binutils-2.25/host/linux/x86/usr/bin/:$PATH
export QNX_TARGET QNX_HOST QNX_CONFIGURATION MAKEFLAGS PATH
unset PYTHONPATH
export ARCH=arm
export CROSS_COMPILE=arm-unknown-nto-qnx6.6.0eabi-

получил

$ ./configure --host=arm-unknown-nto-qnx6.6.0eabi
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-unknown-nto-qnx6.6.0eabi-strip... arm-unknown-nto-qnx6.6.0eabi-strip
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for style of include used by make... GNU
checking for arm-unknown-nto-qnx6.6.0eabi-gcc... arm-unknown-nto-qnx6.6.0eabi-gcc
checking whether the C compiler works... no
configure: error: in `/media/data/QNX/openfst-1.7.3':
configure: error: C compiler cannot create executables
See `config.log' for more details

config.log во вложении
в целом картина не изменилась
Записан
Игорь Рондарев
Модератор
Опытный пользователь

Сообщений: 282

Сотрудник СВД ВС


WWW
« Ответ #3 : 28 Август, 2019, 16:18:36 »

Попробуйте к текущему окружению добавить следующее:
Код:
export GCC_EXEC_PREFIX="/media/data/QNX/bin/linux-gcc-4.9.3-qnx660/host/linux/x86/usr/lib/gcc"

Изменится ли поведение ./configure ?
Записан

andybeg
Пользователь

Сообщений: 13


« Ответ #4 : 28 Август, 2019, 16:26:04 »

ничего не поменялось Sad
Записан
Игорь Рондарев
Модератор
Опытный пользователь

Сообщений: 282

Сотрудник СВД ВС


WWW
« Ответ #5 : 28 Август, 2019, 16:36:32 »

Уточните, каталог /media/data/QNX/bin/linux-gcc-4.9.3-qnx660 содержит полную копию SDP, или только распакованные компоненты gcc 4.9.3? Потому что следующая рекомендация - переопределить путь к компонентам так, чтобы от соответствовал стандартному (с соответствующим изменением PATH). То есть, например
Код:
mv /opt/qnx660 /opt/qnx660.orig
ln -s /media/data/QNX/bin/linux-gcc-4.9.3-qnx660 /opt/qnx660
Ибо есть вероятность, что стандартные сборки не всегда правильно отрабатывают перемещение в каталог, отличный от указанного при компиляции самого gcc (т.е. в данном случае от /opt/qnx660).
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 05 Апрель, 2024, 14:32:05