【发布时间】:2019-07-24 16:42:57
【问题描述】:
我在 Fortran 中有一个拆分项目,其中有一个子目录作为库:
# ./CMakeLists.txt
cmake_minimum_required (VERSION 2.8)
project (Simulation Fortran)
enable_language(Fortran)
add_subdirectory(lib)
add_executable(Simulation main.f90)
include_directories(lib)
add_dependencies(Simulation physicalConstants)
target_link_libraries(Simulation physicalConstants)
根目录只包含一个 Fortran 源代码文件:
! ./main.f90:
program simulation
use physicalConstants
implicit none
write(*,*) "Boltzmann constant:", k_b
end program simulation
我的子目录lib 包含另一个CMakeLists.txt 以及一个Fortran 模块源文件:
# ./lib/CMakeLists.txt:
cmake_minimum_required (VERSION 2.8)
enable_language(Fortran)
project(physicalConstants)
add_library( physicalConstants SHARED physicalConstants.f90)
! ./lib/physicalConstants.f90:
module physicalConstants
implicit none
save
real, parameter :: k_B = 1.38e-23
end module physicalConstants
我尝试使用 cmake 构建那些。 make在lib目录下生成physicalconstants.mod,但是在main.f90.o的构建过程中找不到这个文件:
Fatal Error: Can't open module file 'physicalconstants.mod' for reading at (1): No such file or directory
我在这里错过了什么?
【问题讨论】: