У меня есть огромные исходники, большинство из них написано на языке Fortran90, однако некоторые части находятся на языке C. Этот код для правильной компиляции требует установки MPI и HDF5. Я установил их сейчас, когда я пытаюсь скомпилировать модель (компиляция не с командой ./compile
есть ./install.sh
, и она заботится обо всем, включая компиляцию). У меня длинная ошибка и все связано с путём файлов заголовков. Ниже приведена ошибка:Исходный код не может найти заголовочные файлы include?
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: mpif.h
Can't find file: stdio.h
Can't find file: math.h
Can't find file: stdlib.h
Can't find file: malloc/malloc.h
Can't find file: malloc.h
Can't find file: stdlib.h
Can't find file: errno.h
Can't find file: string.h
Can't find file: ctype.h
Can't find file: dirent.h
Can't find file: string.h
и после этого есть некоторые другие ошибки, которые, по моему мнению, связаны с вышеуказанными ошибками. Я попытался установить PATH в ./bashrc и при поиске, например, найти mpif.h возвращает:
[[email protected] bin]$ locate mpif.h
/home/hamid/Downloads/ED-2.1/ED/build/bin/mpif.h
/home/hamid/Downloads/ED-2.1/ED/src/mpi/mpif.h
/home/hamid/Downloads/mpich-3.1.3/src/binding/fortran/mpif_h/mpif.h
/home/hamid/Downloads/mpich-3.1.3/src/binding/fortran/mpif_h/mpif.h.in
/home/hamid/Downloads/mpich-3.1.3/src/include/mpif.h
/home/hamid/mpich2-optimised/include/mpif.h
, а также я установить переменную LD_LIBRARY_PATH как:
export LD_LIBRARY_PATH=$MPI_DIR/lib:$LD_LIBRARY_PATH
Но все-таки кажется, что он не работает. Я предполагаю, что это не просто связано с настройкой пути MPI или HDF, потому что некоторые из них являются заголовочными файлами GCC (C компилятор). Любая идея о том, что может быть проблемой?
Вам нужно использовать опцию '-I' для' gcc', чтобы указать, где найти файлы заголовков. – Barmar
Заголовки не расположены с использованием 'LD_LIBRARY_PATH'. Используйте опцию -I, чтобы указать, в какой каталог (ы) входят ваши заголовки. –
Спасибо, ребята, я не знаю, куда положить -I, так как я упомянул, что компиляция модели не похожа на простую компиляцию с ./compile, make и make install. вместо этого он имеет,/install bash script. в случае интереса [здесь] (https://github.com/EDmodel/ED2/wiki/Quick-start) больше описания, я следую за быстрой установкой. – Ress