Я пытаюсь скомпилировать один исходный файл Фортрана main.f90
с помощью cmake, который включает в себя одну внешнюю библиотеку Фортрана:
USE RAD_Module
Проект прекрасно компилируется с помощью следующего простого рукописного файла сборки:
all:
gfortran -c -I/usr/local/rad_v2.0.0/include main.f90
gfortran -L/usr/local/rad_v2.0.0/lib -lRAD -o test.out main.o
Внешняя библиотека stati c не имеет CMakeLists.txt
, и ее структура выглядит следующим образом:
- Её файлы
*.mod
модуля находятся в /usr/local/rad_v2.0.0/include/
. - Его
librad.a
файл находится в /usr/local/rad_v2.0.0/lib/
.
Мой CMakeLists.txt
файл выглядит так:
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
project("myProject" Fortran)
enable_language(Fortran)
## Target from sources:
add_executable(myProject main.f90)
## Link library:
link_directories("/usr/local/rad_v2.0.0/lib")
link_directories("/usr/local/rad_v2.0.0/include")
find_library(RAD
NAMES librad.a
HINTS "/usr/local/rad_v2.0.0/lib")
if(NOT RAD)
message(FATAL_ERROR "RAD library not found!")
endif()
target_link_libraries(myProject RAD)
С этим CMakeLists.txt
cmake успешно создает make-файл. Однако, когда я впоследствии пытаюсь make
код, я получаю следующее сообщение об ошибке:
15 | USE RAD_Module
| 1
Fatal Error: Cannot open module file 'rad_module.mod' for reading at (1): No such file or directory
compilation terminated.
Файл rad_module.mod
находится в папке /usr/local/rad_v2.0.0/include
.