История изменений
Исправление
Moisha_Liberman,
(текущая версия)
:
Вот как делают в яндексе: https://youtu.be/Z7WuUhPJ-cU?t=3789
Да, можно. Да, там процесс описан нормально.
Да, реализацию стандарта должен поддерживать и компиль и должна быть поддержка тех же специфичных для стандарта типов данных (типа std::any, например) в библиотеке libstdc++.
Для ТС Тогда в коде надо чтобы было типа так (можно и по-другому, чисто пример показываю):
#if __cplusplus >= 201703L
#include <any>
#endif
Это мы задействовали core language features, т.е., то, что Вы передаёте компилятору как пожелание типа –std=c++17.
Теперь прилинковываем как статические библиотеки libstdc++ может ещё и libstdc++fs понадобиться, если у Вас использованы возможности поддержки file system, это мы задействуем именно library features.
И про core language features и про library features справочник есть тут – https://en.cppreference.com/w/cpp/compiler_support. Если С++ часто и разных версий стандарта, то рекомендую держать в закладках.
И да, морально готовьтесь к тому, что бинарь будет ну очень большого размера.
Для теста разверните в виртуалочки требуемые версии линуксов, да затестите. Это не долго.И всё должно завестись.
Исправление
Moisha_Liberman,
:
Вот как делают в яндексе: https://youtu.be/Z7WuUhPJ-cU?t=3789
Да, можно. Да, там процесс описан нормально.
Да, реализацию стандарта должен поддерживать и компиль и должна быть поддержка тех же специфичных для стандарта типов данных (типа std::any, например) в библиотеке libstdc++.
Для ТС Тогда в коде надо чтобы было типа так (можно и по-другому, чисто пример показываю):
#if __cplusplus >= 201703L
#include <any>
#endif
Это мы задействовали core language features, т.е., то, что Вы передаёте компилятору как пожелание типа –std=c++17.
Теперь прилинковываем как статические библиотеки libstdc++ может ещё и libstdc++fs понадобиться, если у Вас использованы фозможности поддержки file system, это мы задействуем именно library features.
И про core language features и про library features справочник есть тут – https://en.cppreference.com/w/cpp/compiler_support. Если С++ часто и разных версий стандарта, то рекомендую держать в закладках.
И да, морально готовьтесь к тому, что бинарь будет ну очень большого размера.
Для теста разверните в виртуалочки требуемые версии линуксов, да затестите. Это не долго.И всё должно завестись.
Исходная версия
Moisha_Liberman,
:
Плюсую.
Вот как делают в яндексе: https://youtu.be/Z7WuUhPJ-cU?t=3789
Да, можно. Да, там процесс описан нормально.
Да, реализацию стандарта должен поддерживать и компиль и должна быть поддержка тех же специфичных для стандарта типов данных (типа std::any, например) в библиотеке libstdc++.
Тогда в коде надо чтобы было типа так (можно и по-другому, чисто пример показываю):
#if __cplusplus >= 201703L
#include <any>
#endif
Это мы задействовали core language features, т.е., то, что Вы передаёте компилятору как пожелание типа –std=c++17.
Теперь прилинковываем как статические библиотеки libstdc++ может ещё и libstdc++fs понадобиться, если у Вас использованы фозможности поддержки file system, это мы задействуем именно library features.
И про core language features и про library features справочник есть тут – https://en.cppreference.com/w/cpp/compiler_support. Если С++ часто и разных версий стандарта, то рекомендую держать в закладках.
И да, морально готовьтесь к тому, что бинарь будет ну очень большого размера.
Для теста разверните в виртуалочки требуемые версии линуксов, да затестите. Это не долго.И всё должно завестись.