我试图在编译时将 C++ 函数链接到 Fortran 程序中。我正在使用 make 文件使用 mpif90 进行编译。我将 C++ 目标文件添加到后者中的目标文件列表中。该函数通过它自己编译得很好
g++ -c -o quenchf.o quenchf.cpp
但是当我将 .o 文件添加到我的 Fortran 程序文件的 make 文件中时,我得到了错误:
quenchf.o:在函数中Optim::Optim(double, double, int, int)':
quenchf.cpp:(.text+0x1348): undefined reference to
operator new[](unsigned long)' quenchf.cpp:(.text+0x1359): undefined reference to operator new[](unsigned long)'
quenchf.cpp:(.text+0x136d): undefined reference to
operator new[](unsigned long)' quenchf.cpp:(.text+0x1381): undefined对operator new[](unsigned long)'
quenchf.cpp:(.text+0x1395): undefined reference to
operator new[](unsigned long)' quenchf.o:quenchf.cpp:(.text+0x13a9) 的引用:对operator new[](unsigned long)' follow
quenchf.o:(.eh_frame+0x13): undefined reference to
__gxx_personality_v0' 的更多未定义引用 make: * [ljnpt.exe] 错误 1
我需要将 C++ 链接到 Fortran 库吗?我在 c 函数中实例化了一个 C++ 对象,所以这可能会导致问题。
谢谢你的帮助-