Сделайте ошибку с g95: не удалось определить флаг для имен исполняемых файлов - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь собрать 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 Ответ

0 голосов
/ 10 января 2019

Я смог воспроизвести проблему, с которой вы столкнулись, и смог успешно скомпилировать 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, которые казались рекомендуемым ответом по умолчанию. Кроме того, я заметил, что в вашем сообщении об ошибке упоминается "serial" make target

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...