gpt4 book ai didi

c++ - 从 C++ 调用 Fortran 子程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:55:09 34 4
gpt4 key购买 nike

我想从 C++ 调用 Fortran 子例程。由于我的程序需要包含 deal.ii(微分方程分析库)中的一些库,因此我使用 CMake 创建 makefile。我现在的问题如下:

  • CMakeLists.txt 需要做哪些更改才能链接 Fortran 文件?
  • 我是否也必须在 C++ 文件中显式包含使用的 Fortran 文件,或者在 C++ 代码的开头给出相应的函数原型(prototype)就足够了吗?

提前致谢!塞布

附言:这是当前的 CMakeLists.txt:

##
# CMake script for the SIMP program:
##

# Set the name of the project and target:
SET(TARGET "SIMP")

# Declare all source files the target consists of:
SET(TARGET_SRC
${TARGET}.cc
# You can specify additional files here!
)

# Usually, you will not need to modify anything beyond this point...

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)

FIND_PACKAGE(deal.II 8.0 QUIET
HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR}
)
IF(NOT ${deal.II_FOUND})
MESSAGE(FATAL_ERROR "\n"
"*** Could not locate deal.II. ***\n\n"
"You may want to either pass a flag -DDEAL_II_DIR=/path/to/deal.II to cmake\n"
"or set an environment variable \"DEAL_II_DIR\" that contains this path."
)
ENDIF()

DEAL_II_INITIALIZE_CACHED_VARIABLES()
PROJECT(${TARGET})
DEAL_II_INVOKE_AUTOPILOT()

最佳答案

看看http://www.cmake.org/Wiki/CMakeForFortranExample

如果您使用的是 gfortran,那么您唯一需要的就是

enable_language(Fortran)

get_filename_component 部分检查您是否有存在的编译器。知道它正在选择哪一个非常有用,尤其是在安装了 gfortran、g95 和 ifort 的情况下。

关于c++ - 从 C++ 调用 Fortran 子程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789047/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com