стоит ubuntu 20 а на сервере 18.
компилирую на локальной машине, отправляю бинарник на сервер.
после отправки бинарника на сервер не находит `GLIBC_2.28' ,
( или другими словами - libc.so.6)
-слинковать статически, конкретно ее не получается,
-все статически слинковать можно , но ломаются треды.
как правильно поступить в такой ситуации ?
собирать в окружении целевой ОС ? была идея собирать докер с целевой ОС, и компилятором, но костыльно как то.
лучше компилировать на более старой версии. она запуститься на новой, но не наоборот
Лучше всего с этим вопросом пройти в https://t.me/probuildsystems И там наверняка посоветуют https://github.com/wheybags/glibc_version_header
О спасибо, за сылку, сейчас попробуем.
Собрать полный набор всех требуемых для запуска конкретной программы so-шек, и положить их в ту же папку где и программа можно.... Можно также установить более новые библиотеки на сервер... Но надо ли? ) Наверное самое разумное собирать приожение под то конкретное рабочее окружение, которое есть на целевой машине. То на сервере. Это самое правильное.
я собираю бинари в контейнерах обычно, но если так не хочется, то https://github.com/wheybags/glibc_version_header
М кстати а кау делаешь? Я монтирую через - v директорию с исходниками и Cmake, Пытаюсь запускать Cmake (в самодельном контейнере с 18 убунту) он не может конфигурацию пройити. А gcc/Dockerfile at master · docker-library/gcc · GitHub https://github.com/docker-library/gcc/blob/master/10/Dockerfile Отрабатывает как и должен. Я видимо неправильно докер файл пишу, чего то недоделываю.
Начальство так и порешило.
так покажите ваш докерфайл
cmake minimal required version не проходит?
Дальнейшие обсуждения этого вопроса - исключительно в @probuildsystems
Обсуждают сегодня