То, как я фиксирую, “не может найти, что-lccp4c” устанавливает Gromacs с Соответствием Плотности?

Я пытаюсь установить gromacs 5.0.7 с автоматизированной плотностью, соответствующей согласно протоколу, предоставленному в нижней части этой ссылки: https://www.mpibpc.mpg.de/grubmueller/densityfitting

К сожалению, я не знаю, где начать устанавливать ccp4 часть и начинать устанавливать его только после получения к "сделать" части.

После "делают", я получаю следующую ошибку:

[ 97%] Building C object src/gromacs/CMakeFiles/libgromacs.dir/utility/baseversion-gen.c.o
[ 97%] Linking CXX shared library ../../lib/libgromacs.so
/usr/bin/ld: cannot find -lccp4c
collect2: error: ld returned 1 exit status
src/gromacs/CMakeFiles/libgromacs.dir/build.make:17155: recipe for target 'lib/libgromacs.so.0.0.0' failed
make[2]: *** [lib/libgromacs.so.0.0.0] Error 1
CMakeFiles/Makefile2:1460: recipe for target 'src/gromacs/CMakeFiles/libgromacs.dir/all' failed
make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

Если бы Вы могли бы все помочь мне с этим, я ценил бы его очень.

Отредактируйте 1 обновление с помощью Ответа Eliah'a

После установки libccp4 использование

sudo apt update
sudo apt install libccp4-dev

Я все еще получил код ошибки, так установленная установка fftw использование

sudo apt-get install fftw3 fftw3-dev pkg-config

После этого я затем, когда к исходному файлу и используемый make, и это скомпилировало через 100%! Я затем сделал make check, и это, казалось, работало.

После этого я попытался установить и получил следующую ошибку:

    bys@bys-Precision-Tower-3620:~/Desktop/gromacs-5.0.7-densfit/build$ sudo make install
[  0%] Building NVCC (Device) object src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/cuda_tools_generated_pmalloc_cuda.cu.o
nvcc fatal   : Unsupported gpu architecture 'compute_20'
CMake Error at cuda_tools_generated_pmalloc_cuda.cu.o.Release.cmake:219 (message):
  Error generating
  /home/bys/Desktop/gromacs-5.0.7-densfit/build/src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir//./cuda_tools_generated_pmalloc_cuda.cu.o


src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/build.make:77: recipe for target 'src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/cuda_tools_generated_pmalloc_cuda.cu.o' failed
make[2]: *** [src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/cuda_tools_generated_pmalloc_cuda.cu.o] Error 1
CMakeFiles/Makefile2:1503: recipe for target 'src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/all' failed
make[1]: *** [src/gromacs/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

Я полагаю, что это - ошибка при вовлечении Nvidia инструментарий CUDA и Драйверы. Как я должен пойти о фиксации этого?

1
задан 4 July 2019 в 09:52

1 ответ

Установите libccp4-dev пакет. Пакет должен быть доступен для любого релиза Ubuntu, который Вы используете. Один хороший способ установить его состоит в том, чтобы работать:

sudo apt update
sudo apt install libccp4-dev

libccp4-dev пакет непосредственно предоставляет заголовочные файлы библиотекам CCP4, в которых Вы нуждаетесь для компиляции программного обеспечения, которое использует их и также объявляет зависимости от других пакетов, которые обеспечивают двоичные файлы библиотеки и файлы данных, заставляя их быть установленными также. Это включает libccp4c0 пакет, который обеспечивает двоичные файлы, против которых Вы связываетесь.

Затем для создания Gromacs с Соответствием Плотности я рекомендую перейти к исходному каталогу верхнего уровня (т.е. каталог, который был создан, когда Вы распаковали архив), и работайте:

rm -r build  # omit if you already deleted the old build directory
mkdir build
cd build
CCP4INC=/usr/include/ccp4/
cmake .. -DCMAKE_C_FLAGS="-I $CCP4INC" -DCMAKE_CXX_FLAGS="-I $CCP4INC"
make

(Для параллельной сборки Вы могли бы использовать make -j5 или что-то вместо просто make. Для N параллельные задания, использовать make -jN.)

Это подобно и на основе инструкций у основания той страницы, но я не потрудился указывать, где фактические двоичные файлы библиотеки. Это смогло найти их само. Я протестировал это на Ubuntu 19.10, которая с этой записи является выпуском разработки (т.е. еще выпущенный), таким образом, Вы не выполнили бы это в производственной системе. Но я ожидаю, что это будет работать над более ранними выпусками также. Вам, возможно, даже не придется сказать это, где заголовки - обычно это не необходимо также для библиотек, установленных с диспетчером пакетов системы - но я действительно должен был сделать это.

Если Вы действительно заканчиваете тем, что должны были указать местоположения библиотеки, можно сделать это путем добавления -DCMAKE_EXE_LINKER_FLAGS=-L/usr/lib/x86_64-linux-gnu/, принятием Вашей системы является ПК или Mac с 64-разрядным процессором Intel или AMD, выполняя 64-разрядную версию Ubuntu.

Все вместе, cmake команда была бы:

cmake .. -DCMAKE_C_FLAGS="-I $CCP4INC" -DCMAKE_EXE_LINKER_FLAGS=-L/usr/lib/x86_64-linux-gnu/ -DCMAKE_CXX_FLAGS="-I $CCP4INC"

Я протестировал это также в той же системе, и она также работала с последующим make следование.


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

В целом пакеты, которые существуют для обеспечения библиотек, имеют имена, которые запускаются с lib сопровождаемый под названием библиотека. apt list команда принимает шарики, в который * в пакете имя представляет последовательность нуля или большего количества любого символа. В этом случае, apt list 'libccp4c*' было бы несовершенно, потому что это не перечисляет соответствующий dev пакет.

Я склонен искать наименьшую важно кажущуюся подстроку названия библиотеки, которое кажется, что она могла бы сузить вещи вниз достаточно и затем добиться большей подстроки, если существует слишком много результатов для скольжения быстро. Я, оказалось, запускался путем выполнения apt list '*ccp4*', который нашел точно, что я искал на первой попытке.

Затем я работал apt show libccp4-dev для проверки это было тем, что я думал, что это было, и apt -s install libccp4-dev видеть, что было бы установлено, на самом деле не делая установки.

После установки пакета я работал dpkg-query -L libccp4-dev | grep -F cmaplib.h найти, какой каталог содержит заголовки CCP4, потому что я, оказалось, видел сообщение об ошибке в предыдущей попытке сборки, которая упомянула тот файл. Иначе я, возможно, работал dpkg-query -L libccp4-dev и осмотренный немного более вывод.

Я не заканчивал тем, что должен был найти каталог, который содержал двоичные файлы библиотеки (см. выше), чьи имена имеют тенденцию заканчиваться в so, иногда сопровождаемый a .- разграниченная последовательность цифр. Но если я должен был, dpkg-query -L libccp4c0 сделал бы это.

1
ответ дан 7 December 2019 в 15:00

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

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