fortran90 — Ошибка компиляции с программой на Фортране, вызывающей функцию c ++

Я пытаюсь связать функцию C ++ во время компиляции в программу на Фортране. Я компилирую с 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
оператор new [] (без знака long) ‘
quenchf.cpp :(. text + 0x1359): неопределенная ссылка на operator new[](unsigned long)'
quenchf.cpp:(.text+0x136d): undefined reference to
оператор new [] (без знака long) ‘
quenchf.cpp :(. text + 0x1381): неопределенная ссылка на operator new[](unsigned long)'
quenchf.cpp:(.text+0x1395): undefined reference to
оператор new [] (без знака long) ‘
quenchf.o: quenchf.cpp :(. text + 0x13a9): больше неопределенных ссылок на operator new[](unsigned long)' follow
quenchf.o:(.eh_frame+0x13): undefined reference to
__gxx_personality_v0′
делать: * [ljnpt.exe] Ошибка 1

Нужно ли ссылаться в библиотеке C ++ на Fortran? Я создаю экземпляр объекта C ++ в функции c, поэтому, возможно, это вызывает проблему.

Спасибо за любую помощь

0

Решение

Вы не привязаны к среде выполнения C ++ (которая обеспечивает такие вещи, как operator new[](unsigned long)). Проблема в том, что вам понадобится среда исполнения C ++ и Fortran, и я не уверен, как этого добиться, но с флагами компоновщика должен быть способ.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]