Я пытаюсь вызвать функцию c ++ из основной программы Fortran. Для этого я выполнил следующие шаги в Visual Studio 2010:
Создание проекта статической библиотеки C ++
Чтобы создать исполняемый проект Fortran
Кроме того, я делаю некоторые настройки в Visual Studio, как показано ниже:
Фортран программа
program main
use iso_c_binding, only : C_CHAR, C_NULL_CHAR
implicit none
interface
subroutine print_C ( string ) bind ( C, name = "print_C" )
use iso_c_binding, only : C_CHAR
character ( kind = C_CHAR ) :: string ( * )
end subroutine print_C
end interface
call print_C ( C_CHAR_"Hello World!" // C_NULL_CHAR )
end
Функция C ++
# include <stdlib.h>
# include <stdio.h>
extern "C" void print_C (char *text)
{
printf("%s\n", text);
}
Когда я собираю программу, я сталкиваюсь со следующими ошибками:
Error 1: error LNK2019: unresolved external symbol _print_C referenced in function _MAIN__ Fortranmain.obj
Error 2: fatal error LNK1120: 1 unresolved externals Debug\Fortranmain.exe
Кто-нибудь может мне помочь? Любое предложение будет высоко ценится.
Вам необходимо связать библиотеку C ++ с исполняемым файлом Fortran. Зависимости указывают порядок сборки.