Сделайте ошибку с 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.

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