2011-09-07 5 views
4

Fortran90을 처음 사용하고 있으며 가지고있는 문제점에 대한 답을 찾지 못했습니다. 모듈 안에 몇 가지 기능이있는 Fortran으로 작성된 모듈이 있습니다.Fortran90의 동일한 모듈에서 함수 호출하기

버전을 박탈 : 함수가 vdiStringGeneral이기 때문에

error LNK2019: unresolved external symbol _VDISTRINGGENERAL referenced in function _VDISTRINGFUNCTIONS_mp_VDISTRING1CHAR vdiStringFunctions.obj

:

 
module vdiStringFunctions

interface vdiString module procedure vdiString1Char end interface

contains character (128) function vdiString1Char(CSTRING, sVar1) character(*), intent(in) :: CSTRING, sVar1 character(128) :: vdiStringGeneral character(len=128), dimension(0:9) :: stringArray

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

내가 인텔 비주얼 포트란 XE로 컴파일하려고 2011 년 나는 다음과 같은 오류가 발생합니다 호출하는 vdiString1Char과 동일한 모듈에서 문제가 발생하지 않습니다. 모듈 외부에서 vdiStringGeneral을 이동할 때 문제없이 컴파일됩니다.

DLL에서 사용해야하므로 모든 기능은 모듈 안에 있어야합니다. 어떻게 그렇게 할 수 있습니까?

답변

4

vdiString1CharvdiStringGeneral 선언을 제거하십시오. vdiStringGeneral의 인터페이스는 이미 동일한 모듈에 정의되어 있기 때문에 이미 명시 적입니다. 이제 선언 한대로 링커에서 외부 함수를 찾고 있습니다.

+0

아, 가끔은 쉽습니다 ... 도와 줘서 고마워! – thomacco

관련 문제