gpt4 book ai didi

fortran - 链接 2 个具有相同模块名称和子例程名称的库

转载 作者:行者123 更新时间:2023-12-02 01:40:36 30 4
gpt4 key购买 nike

我在一个 Fortran 项目中,我必须链接 2 个具有相同模块名称的库,在它们下具有相同的子例程名称。我使用的是 Intel Fortran 编译器,当我导入模块并调用子例程时,它总是转到第一个链接的模块。

有没有一种方法可以专门从特定库调用子例程?

这是一些伪代码:

Lib1 和 Lib 2 都有这个:

module foo
subroutine func()
write (*, *) "Hello from Lib1" ! or Lib2
end subroutine()
end module

主要

program Main
use foo, only: func

call func()
end program

CMakeLists.txt


target_link_libraries(Main PRIVATE libLib1.so libLib2.so)

最佳答案

在 Fortran 中两个模块名称相同是非法的。在编写其他用户使用的库时,我强烈建议对模块名称和其他可能冲突的实体使用诸如 mylibrary_foo 之类的前缀。

现在除了重命名这些东西之外你不能做太多事情。如果您想尝试使用工具链中的技巧以某种方式分离这些内容,您首先必须详细指定您的工具链,但我对此表示怀疑。

关于fortran - 链接 2 个具有相同模块名称和子例程名称的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71633234/

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