我试图从Fortran主程序中调用c ++函数。要做到这一点,我按照Visual Studio 2010中的下面的步骤: 创建C ++静态库项目
创建可执行的Fortran项目
另外我在Visual Studio中做了一些设置如下:
Fortran计划
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
有人能帮帮我吗?任何建议都会非常感激。
答案 0 :(得分:2)
您需要将C ++库链接到Fortran可执行文件。依赖关系指定构建顺序。