Компиляция C / C ++ для старой версии Ubuntu в новой версии Ubuntu - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть серверы сборки, на которых работает Ubuntu 18.04 (в контейнере Docker), но мне нужно собрать двоичные файлы (различные статические и совместно используемые библиотеки и исполняемые файлы) для более старых версий Ubuntu (например, 16.04), без необходимости устанавливать более старую версиюОС.

В настоящее время мы используем наборы инструментов sysroot (которые включают в себя компилятор и библиотеки и т. д.) и файлы наборов инструментов CMake для сборки для других целей (например, ARM Poky / Yocto), и было бы идеально, если бы мы могли использоватьтот же подход для сборки для старых (или потенциально новых) версий Ubuntu.

Возможно ли это?

1 Ответ

0 голосов
/ 14 ноября 2018

Все возможно, но самое простое, что вы можете сделать, - это создать новый образ Docker (или какой-либо другой тип машины) с более старой ОС на нем. Тогда все будет "просто работать".

Если вы действительно не хотите этого делать, вам нужно определить все зависимости, начиная с libc, у которых отсутствуют символы на более старой платформе, а затем выяснить, как избежать использования этих символов. Это, вероятно, потратит массу времени, особенно если учесть, что у вас уже есть один сборочный контейнер (создание второго не должно быть трудным).

...