Я пытаюсь установить 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 и Драйверы. Как я должен пойти о фиксации этого?
Установите 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
сделал бы это.