c++ - Fortran 中的静态链接

标签 c++ dll fortran static-linking

我开发了一个用 C++ 编写的模块,用于管理我公司产品的许可证。为了防止 DLL 替换,我们的目标是在解决方案中静态链接 DLL。这在 C++ 中很容易做到,但事实证明对于我们用 Fortran 编写的部分代码库来说有点问题。

我意识到这可能因编译器而异(我们使用 Intel Fortran 9.1),但是是否有任何通用的方法在 Fortran 中实现 C++ DLL 的静态链接?

最佳答案

要获得静态链接,通常的方法不是使用 DLL,而是使用简单的库 (*.lib)。这与编程语言无关:它仅取决于操作系统。

构建库也比构建 DLL 简单。在 Unix 上,库的后缀为 .a,而 DLL 的后缀为 .so(用于共享对象)。

然而,通常可以静态链接 DLL,但这是通过传递给链接器的特定选项获得的。例如,在 Unix 上,有许多编译器套件,选项是 -static 或 -Bstatic。查看编译器编程手册中的关键字“static”。

关于c++ - Fortran 中的静态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7755382/

相关文章:

c++ - 如何在不使用 MACRO 的情况下访问成员变量

.net - friend 引用课?

c++ - 如何在 dll (c++) 中创建线程?

fortran - 此代码是否演示了 GFortran 中的错误?

c++ - 如何让 eclipse cdt 显示运行时错误(例如段错误)

c++ - 使用固定整数类型的安全性

c++ - 条件变量声明

c++ - 跨 DLL 边界使用单例

c++ - FORTRAN 中的 POINTER 关键字相当于 C/C++ 中的 POINTER 关键字

c - 我怎样才能找出哪个图书馆是给定对象的所在地?