【发布时间】:2010-12-10 01:37:12
【问题描述】:
在将 C++ 应用程序链接到另一个具有 Fortran90 依赖项(MinGW、TDM g++ 和 gfortran)的 C++ 库时,我遇到了很多麻烦。我要么必须使用 gfortran 进行链接,要么应用程序在启动时崩溃(在键入 __cxa_get_globals_fast 的全局构造函数中)。但是这是不可接受的,我想使用 g++ 进行链接(Qt GUI)。
在我看来,库的依赖关系不能用 gcc 静态链接,链接仅在 main() 可用时执行。为什么?
我猜部分是因为某些初始化的代码必须在 main() 之前插入。
为什么静态链接的应用程序需要DLL-s,比如运行时的mingwm10.dll或pthreadGCE2.dll?为什么这些不能静态链接?
更新:我刚刚找到了这些网站:
http://www.deer-run.com/~hal/sol-static.txt
http://www.iecc.com/linker/
【问题讨论】:
标签: c++ static linker mingw fortran