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

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отсутствие std::stoi  (Прочитано 3215 раз)
alexolut
Интересующийся

Сообщений: 6


« : 03 Апрель, 2019, 13:32:39 »

Не удаётся никак подцепить std::stoi в проект, собираемый для QNX6.5.
Использовал как GCC 5.5, скачанный отсюда, так и более ранние версии с Foundry27 (4.9.3, 4.8.3 ...). Другие C++11 и даже С++14 сущности компилируются нормально.
Пробовал определять дефайн _GLIBCXX_USE_C99, как рекомендовали на просторах интернета, но безуспешно.
Компилятор в упор не видит объявления этой функции:
Цитировать
error: 'stoi' is not a member of 'std'
Подскажите, как всё же скомпилировать код с этой функцией под QNX.
Собираю в Momentics из-под Windows.
В качестве обходного решения пока использую strtol.
Примерная команда компиляции такая:
Цитировать
QCC -c -V5.5.0,gcc_ntox86 -Y_gpp -w1 -Wc,-std=c++14 -D_QNX_SOURCE -D_HAS_C9X -Wc,-fno-stack-protector  -O3 -Wall  -o main.o main.cpp

Минимальный код:
Код:
#include <string>
int main() {
    std::stoi("42");
}


Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #1 : 04 Апрель, 2019, 11:48:29 »

Добрый день! Уточните, пожалуйста, установлен ли Service Pack 1 (SP1), или используется базовая версия 6.5.0.
Записан

alexolut
Интересующийся

Сообщений: 6


« Ответ #2 : 04 Апрель, 2019, 14:41:25 »

SP1 установлен. Но как это может влиять на доступность функций стандартной библиотеки, которые по сути идут с компилятором? К тому же SP1 датирован 2010 годом, когда о С++11 и тем более C++14 не было ещё известно окончательно.

У вас тестовый код компилируется где-либо?
« Последнее редактирование: 04 Апрель, 2019, 14:46:08 от alexolut » Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #3 : 04 Апрель, 2019, 15:29:31 »

Стандартная библиотека libstdc++ и её заголовочные файлы как минимум опираются на системные заголовочные файлы и макроопределения, содержимое и состав которых всё-таки может отличаться в зависимости от версии ОС. Тестовый пример у нас успешно собирается в составе ЗОСРВ "Нейтрино" (как в связке gcc 4.8.3 + libstdc++ 6.0.19, так и gcc 5.5.0 + libstdc++ 6.0.21), попробуем воспроизвести ситуацию в QNX 6.5.0 SP1.
Записан

alexolut
Интересующийся

Сообщений: 6


« Ответ #4 : 04 Апрель, 2019, 15:37:07 »

Правильно ли я понимаю, что в случае сборки в Momentics под Windows имеются в виду заголовочные файлы, расположенные по пути <Momentics Install Path>\target\qnx6\usr\include?
Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #5 : 04 Апрель, 2019, 16:02:36 »

Да, системные заголовочные файлы расположены в данном каталоге (%QNX_TARGET%\usr\include). Заголовочные файлы библиотеки libstdc++ расположены в каталоге %QNX_TARGET%\usr\include\с++\<версия_компилятора>.
Записан

alexolut
Интересующийся

Сообщений: 6


« Ответ #6 : 04 Апрель, 2019, 16:36:31 »

А можем ли мы как-то обменяться ими, дабы найти возможные расхождения? Кстати, удалось ли вам уже провести эксперимент с QNX6.5 SP1?
Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #7 : 08 Апрель, 2019, 12:41:00 »

Результаты эксперимента со сборкой примера под QNX 6.5.0 SP1 оказались аналогичны вашим (заголовочные файлы QNX 6.5.0 SP1 некорректно обрабатывают ряд ситуаций, связанных с C99 и С++>=11). Напишите нам на адрес Технической поддержки для решения вопроса о передаче необходимых материалов.
« Последнее редактирование: 08 Апрель, 2019, 12:44:32 от Игорь Рондарев » Записан

alexolut
Интересующийся

Сообщений: 6


« Ответ #8 : 08 Апрель, 2019, 12:54:56 »

Письмо отправил. А почему нельзя решить эту проблему непосредственно в пределах форума? Так сказать, чтобы и другим участникам польза была.
Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #9 : 08 Апрель, 2019, 14:08:38 »

Поскольку решение требует передачи наработок, относящихся к ЗОСРВ "Нейтрино", взаимодействие предпочтительно осуществлять по электронной почте.
Записан

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

Сообщений: 22


« Ответ #10 : 24 Декабрь, 2019, 07:07:44 »

Доброго времени суток!

Не подскажите как разрешилась данная ситуация?
А то похоже столкнулись с похоже проблемой - не находит некоторые функции std.
Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #11 : 09 Январь, 2020, 16:08:46 »

Не подскажите как разрешилась данная ситуация?
А то похоже столкнулись с похоже проблемой - не находит некоторые функции std.
Добрый день. Данная проблема решается путём замены некоторых заголовочных файлов QNX 6.5.0 на соответствующие им файлы из состава ЗОСРВ "Нейтрино". Связана она с тем, что QNX 6.5.0 и 6.5.0 SP1 изначально не полностью поддерживают стандарт C++11 на уровне системных заголовочных файлов.
Записан

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

Сообщений: 20


« Ответ #12 : 10 Июль, 2020, 09:50:00 »

А как можно получить эти заголовочные файлы из состава ЗОСРВ "Нейтрино"для QNX6.5.0 с SP1?
Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

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


WWW
« Ответ #13 : 10 Июль, 2020, 10:25:17 »

Напишите нам на адрес Технической поддержки для решения вопроса о передаче необходимых материалов.
Поскольку решение требует передачи наработок, относящихся к ЗОСРВ "Нейтрино", взаимодействие предпочтительно осуществлять по электронной почте.
Записан

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

Сообщений: 20


« Ответ #14 : 10 Июль, 2020, 10:55:02 »

Спасибо.
Записан
Страниц: [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 посещал эту страницу 19 Апрель, 2024, 09:22:23