Я новичок в Fortran90 и не нашел ответа на мою проблему.У меня есть модуль, написанный на Fortran, с некоторыми функциями внутри модуля.
Урезанная версия:
module vdiStringFunctions</p>
<p>interface vdiString
module procedure vdiString1Char
end interface</p>
<p>contains
character (128) function vdiString1Char(CSTRING, sVar1)
character(*), intent(in) :: CSTRING, sVar1
character(128) :: vdiStringGeneral
character(len=128), dimension(0:9) :: stringArray</p>
<code> 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
</code>
end module vdiStringFunctions
Когда я пытаюсь скомпилировать с Intel Visual Fortran XE2011 Я получаю следующую ошибку:
ошибка LNK2019: неразрешенный внешний символ _VDISTRINGGENERAL, на который ссылается функция _VDISTRINGFUNCTIONS_mp_VDISTRING1CHAR vdiStringFunctions.obj
Поскольку функция является аналогичной функциивызов vdiString1Char у меня не получается проблема.Когда я перемещаю vdiStringGeneral за пределы модуля, он компилируется без проблем.
Поскольку он должен использоваться в DLL, все функции должны находиться внутри модуля.Как я могу заставить его работать таким образом?