Старая версия библиотеки больше не компилируется для кода той же версии C ++ после обновления Ubuntu

У меня есть код C ++, которому два года, и сопровождающие его библиотеки, такие как eigen, libconfig blitz, boost и openmpi. Код и библиотеки являются точно такими же версиями, как и два года назад, но в то же время я постепенно обновлял свою версию Ubuntu с 14 по 18 апреля. Каким-то образом после каждого обновления код C ++ больше не будет компилироваться из-за неопределенного, отсутствующего или неизвестного файла библиотеки. У меня вопрос, как это возможно? У меня есть статическая компиляция, поэтому я не ожидал бы таких проблем компиляции. Я думаю, что проблема может быть в общих библиотеках в новой версии Ubuntu, или это что-то еще? Как я могу предотвратить устаревание моего кода каждый раз, когда появляется новая версия Ubuntu или библиотеки?

Пример ошибки, которую я получаю для библиотеки Blitz версии 1.0.1 в Ubuntu 18.04 (которая работала в Ubuntu 16.04 ):

ошибка: недопустимое использование неполного типа 'blitz :: _ bz_ArrayExpr> :: T_expr {aka class blitz :: FastTV2Iterator}' typedef _bz_typename T_expr :: T_numtype T_numtype; ^ ~~~~~~~~

Для libconfig и openmpi я решил проблему с устаревшей библиотекой, загрузив самую новую версию и связавшись с ней. Однако в случае библиотеки Blitz нет версии, доступной для новейших версий Ubuntu. Поэтому я хотел бы сохранить старую версию с моим кодом, возможно ли это? Как мне решить эти ошибки компиляции в этом случае?

0
задан 24 July 2019 в 18:46

0 ответов

Другие вопросы по тегам:

Похожие вопросы: