Я хочу создать свою программу с LSB Компилятор C++ от Основы Стандарта Linux http://www.linuxfoundation.org/collaborate/workgroups/lsb. Программа зависит от библиотеки Boost, созданной с версией gcc 4.4. Сбои компиляции. Действительно ли возможно создать библиотеку Boost с LSB Компилятор C++? С другой стороны, действительно ли возможно создать библиотеку Boost с некоторой старой gcc версией, какая версия рекомендуется? Моя заключительная цель состоит в том, чтобы получить мои исполняемые и сторонние библиотеки Boost, работающие на большинстве дистрибутивов Linux.
Обычно, что может быть сделано для получения лучшей совместимости на уровне двоичных кодов для дистрибутивов Linux, разработав приложение с закрытым исходным кодом C++ в зависимости от библиотеки Boost?
Компилятор LSB C ++ на самом деле не является компилятором. Исполняемый файл lsbc ++
представляет собой оболочку для компилятора GCC, установленного в вашей системе (фактическим компилятором можно управлять с помощью параметра - lsb-cxx
). Скорее всего, вы взломаете систему ускоренной сборки, чтобы она вызывала оболочку LSB вместо собственного компилятора gcc
.
Таким образом, проблемы, которые могут возникнуть, скорее всего, заключаются не в том, что компилятор LSB не может скомпилировать языковые конструкции, а в том, что есть некоторые проблемы связывания.
Например, компилятор LSB по умолчанию отбрасывает любые разделяемые библиотеки, с которыми связан код, если они не принадлежат LSB. Это может привести к ошибкам компоновки, если BOOST использует такие библиотеки. Этим можно управлять с помощью переменной среды LSBCC_SHAREDLIBS
, но вы должны убедиться, что вы поставляете эти библиотеки вместе с вашим продуктом.
Другая проблема заключается в том, что LSB отстает от выпусков компиляторов GCC (а BOOST может заползать во все темные уголки компиляторов). Насколько мне известно, GCC 4.4 недостаточно протестирован, поэтому лучше попробовать его с компилятором 4.3.
И Google, похоже, не нашел ничего, связанного с наращиванием ускорения с помощью LSBCC, поэтому, если вам это удастся, пожалуйста, поделитесь своим опытом, например, в качестве собственного ответа на ваш вопрос.