我是 Fortran90 的新手,我还没有找到问题的答案。我有一个用 Fortran 编写的模块,其中包含模块内的一些功能。
精简版:
模块 vdiStringFunctions接口 vdiString 模块过程 vdiString1Char 端接口
包含 字符 (128) 函数 vdiString1Char(CSTRING, sVar1) 字符(*),意图(in)::CSTRING,sVar1 字符(128)::vdiStringGeneral 字符(len=128),维度(0:9)::字符串数组
stringArray(0) = adjustl(sVar1) vdiString1Char= vdiStringGeneral(CSTRING, stringArray) end function vdiString1Char character (128) function vdiStringGeneral(CSTRING, varArray) character(*), intent(in) :: CSTRING character(len=128), dimension(0:9), intent(in) :: varArray vdiStringGeneral = 'bla' end function vdiStringGeneral
结束模块 vdiStringFunctions
当我尝试使用 Intel Visual Fortran XE 2011 进行编译时,出现以下错误:
错误 LNK2019:未解析的外部符号 _VDISTRINGGENERAL 在函数 _VDISTRINGFUNCTIONS_mp_VDISTRING1CHAR vdiStringFunctions.obj 中引用
因为函数 vdiStringGeneral 与调用 vdiString1Char 位于同一模块中,所以我没有得到问题。当我将 vdiStringGeneral 移到模块之外时,它可以毫无问题地编译。
因为它应该在 DLL 中使用,所以所有函数都应该在模块内。我怎样才能让它以这种方式工作?