Проблема установки DSSP версии 3.1.4 с C++14

Вопрос или проблема

Я хочу провести крупнозернистое моделирование, используя силовое поле Martini, и для этого требуется установка DSSP версии 3.1.4 или ниже с его бинарным файлом в /usr/local/bin.

Я скачал DSSP 3.1.4 и пытался установить его согласно предоставленным инструкциям:

./autogen.sh
./configure
make

Но после выполнения make я получаю следующую ошибку:

/usr/include/boost/math/tools/config.hpp:23:6: error: #warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)" [-Werror=cpp]
   23 | #    warning "The minimum language standard to use Boost.Math will be C++14 starting in July 2023 (Boost 1.82 release)"
      |      ^~~~~~~
In file included from /usr/include/boost/bind/detail/requires_cxx11.hpp:9,
                 from /usr/include/boost/bind/bind.hpp:24,
                 from /usr/include/boost/bind.hpp:29,
                 from src/dssp.cpp:16:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[1]: *** [Makefile:547: src/dssp.o] Error 1
make[1]: Leaving directory '/home/ganesh/Work/coarse_grained/dssp-3.1.4'
make: *** [Makefile:396: all] Error 2

Я пытался обновить флаги компилятора для использования c++14 в соответствии с инструкциями в этом предыдущем посте, но это не сработало.

У кого-нибудь есть идеи, как это исправить? Заранее благодарю за помощь.

И да, я работаю на Ubuntu 24.04.1 LTS в WSL.

Проблема здесь в том, что предупреждение рассматривается как ошибка — и это действительно просто предупреждение. Чтобы это исправить, удалите строку -Werror в файле Makefile.am и начните сборку заново (на этапе autogen.sh).

.

Ответ или решение

Установка DSSP версии 3.1.4 для использования в симуляциях с помощью области сила Martini может представлять собой определённые трудности, особенно если компиляция сталкивается с проблемой несовместимости стандартов C++ и активированных предупреждений. Давайте разберёмся с этим шаг за шагом.

Теория: Проблема, с которой вы столкнулись, связана с тем, что программа DSSP пытается использовать библиотеку Boost, установленную в вашей системе, и эта библиотека требует поддержки стандарта C++14 начиная с версии Boost 1.82. При выполнении команды make компилятор GCC генерирует предупреждение, потому что в Makefile используется флаг -Werror, который преобразует все предупреждения в ошибки компиляции.

Пример: В вашем случае, при попытке компиляции, вы получили предупреждение /usr/include/boost/math/tools/config.hpp:23:6, касающееся минимального стандарта языка C++ для Boost.Math с июля 2023 года, и это предупреждение было преобразовано в ошибку из-за флага -Werror.

Применение: Чтобы устранить эту проблему, необходимо убрать флаг -Werror, чтобы предупреждения больше не воспринимались как ошибки компиляции. Процесс следующий:

  1. Удаление флага -Werror: Откройте файл Makefile.am и удалите строку, содержащую -Werror. Это позволит компилятору игнорировать предупреждения, связанные с будущими изменениями в Boost. На GitHub вы можете найти дополнительную информацию об этом правиле, как упомянуто в вашем описании по ссылке.

  2. Повторение процесса компиляции:

    • Выполните заново шаги для установки, начиная с autogen.sh:
      ./autogen.sh
      ./configure
      make
  3. Проверка среды компиляции: Убедитесь, что ваш компилятор поддерживает стандарт C++14. Для этого, если вы ещё не сделали, проверьте файлы CCFLAGS в Makefile или в других конфигурационных файлах и убедитесь, что используется соответствующий флаг, например -std=c++14.

Заключение: После выполнения указанных шагов компиляция должна пройти успешно. Если появятся другие ошибки компиляции, их следует решать отдельно, анализируя соответствующий текст ошибки.

Этот метод обеспечит успешную установку DSSP версии 3.1.4, учитывая требования установленных библиотек и среды вашей системной конфигурации.

Оцените материал
Добавить комментарий

Капча загружается...