Я пытаюсь связать функцию C ++ во время компиляции с программой Fortran. Я компилирую mpif90 с помощью файла make. Я добавляю объектный файл C ++ в список объектных файлов в последнем. Функция компилируется сама по себе через
g ++ -c -o quenchf.o quenchf.cpp
но когда я добавляю файл .o в файл make для моего программного файла Fortran, я получаю сообщение об ошибке:
quenchf.o: В функции Optim::Optim(double, double, int, int)':
quenchf.cpp:(.text+0x1348): undefined reference to
operator new [] (unsigned long) 'quenchf.cpp :(. text + 0x1359): undefined ссылка на 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, поэтому, возможно, это вызывает проблему.
Спасибо за любую помощь-