LINUX.ORG.RU

История изменений

Исправление 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. Если С++ часто и разных версий стандарта, то рекомендую держать в закладках.

И да, морально готовьтесь к тому, что бинарь будет ну очень большого размера.

Для теста разверните в виртуалочки требуемые версии линуксов, да затестите. Это не долго.И всё должно завестись.