在执行库语言需要运行时初始化的混合语言库时,最佳实践是什么?
我有一个问题,我想在 Fortran 中创建一个用于 C++ 的特定库。如果可能的话,我想保留平台独立性和编译器独立性。现在,我使用过的两个编译器 G95 和 GFortran 都要求主应用程序调用某些特定于编译器的初始化例程,以便在使用库之前正确设置运行时。这些函数具有不同的名称和签名,具体取决于编译器(对于 G95,函数为 void g95_runtime_start(int argc, char *argv[]) )
我正在使用 CMake 来管理项目,并且库子项目是一个静态库。我是否必须在我的主应用程序的 cmake 文件中找出用于库子项目的 fortran 编译器,然后让 CMake 在主项目中创建一个定义,以便我可以有条件地使用任一 init 例程编译主应用程序?感觉很别扭。有没有更好的办法?