Сделайте ошибку с g95: не удалось определить флаг для имен исполняемых файлов
Я пытаюсь собрать EXCiT!NG с помощью компилятора g95. Это работает, пока не появятся эти ошибки:
checking for linker flag to name executables... configure: error: Could not determine flag to name executables
See `config.log' for more details.
../Make.common:107: die Regel für Ziel „lib/libFoX_common.a“ scheiterte
make[2]: *** [lib/libFoX_common.a] Fehler 1
make[2]: Verzeichnis „/home/robin/Dokumente/exciting/build/serial“ wird verlassen
Makefile:3: die Regel für Ziel „all“ scheiterte
make[1]: *** [all] Fehler 2
make[1]: Verzeichnis „/home/robin/Dokumente/exciting/build/serial“ wird verlassen
Makefile:14: die Regel für Ziel „serial“ scheiterte
make: *** [serial] Fehler 2
1 ответ
Я смог воспроизвести проблему, с которой вы столкнулись, и смог успешно скомпилировать EXCiT!NG. Большая подсказка была в вашем комментарии, в котором упоминалось xsltproc
ошибка. Обратите внимание, что сообщение об ошибке гласит: xsltproc: not found
, что означает, что сама команда отсутствует, и соответствующий пакет должен быть установлен; Кроме того, нужно быть осторожным, чтобы убедиться, что проект полностью "чистый", прежде чем пытаться перекомпилировать снова.
Следующая процедура была выполнена в системе Debian (stretch), поэтому вам нужно будет заменить команды установки пакета соответствующими командами для вашей системы.
Предварительная установка
Во-первых, убедитесь, что необходимые пакеты существуют:
sudo apt install build-essential make gfortran xsltproc git
build-essential
пакет необходим для того, чтобы были доступны стандартные C-компиляторы и библиотеки. make
необходим для сборки пакета (как указано в EXCiT! NG README), и кажется, что только gfortran
доступно в системах Debian, и поэтому я не проверял установку с g95
, xsltproc
Пакет обеспечивает xsltproc
команда, чтобы можно было скомпилировать библиотеки XML (FoX XML); обратите внимание, что это могло быть причиной ошибки, о которой вы упоминали изначально, потому что вы получили сообщение об ошибке, например:
../Make.common:107: die Regel für Ziel „lib/libFoX_common.a“ scheiterte
git
пакет необходим для того, чтобы исходный код мог быть извлечен из GitHub.
Клонирование и сборка проекта
После клонирования исходного кода и входа в каталог проекта
git clone git@github.com:exciting/exciting.git
cd exciting/
Это был просто вопрос бега
make
и выбрав gfortran
в меню, а затем ответить "нет" на вопросы о MPI и SMP, которые, как представляется, являются рекомендуемым ответом по умолчанию. Также я заметил, что в вашем сообщении об ошибке упоминается "серийный" make
цель
Makefile:14: die Regel für Ziel „serial“ scheiterte
следовательно, я предполагаю, что это также настройки, которые вы используете.
После этого, make
успешно завершено. Запуск набора тестов через
make test
к сожалению, не прошло, однако ошибки, похоже, из-за усеченных линий, например
Error: Line truncated at (1) [-Werror=line-truncation]
../../src/src_eigensystem/hmlint.f90:296:132: haaij(if1,if3,ias)=zsum+t1*apwfr(nrmt(is),1,io1,l1,ias)*apwdfr(io2,l1,ias)*1d0/(1d0-veffmt(1,nrmt(is),ias)*y00*a)
который может быть gfortran
проблема, однако трудно сказать. Это может быть случай, когда программное обеспечение работает как ожидалось; это то, что вы должны будете проверить, сравнив выходные данные программы с известной системой DFT.
Уменьшите потенциальные ошибки с чистым каталогом проекта
Обратите внимание, что очистка проекта после неудачной сборки с
make clean
и восстановление, казалось, не хотело построить проект успешно. Мне пришлось вернуться к полному удалению проекта и повторному клонированию из GitHub.