错误 LNK2019:函数_SUM5中引用了未解析的外部符号_N@8

error LNK2019: unresolved external symbol _N@8 referenced in function _SUM5

提问人:user3541677 提问时间:4/17/2014 最后编辑:Peter Petrikuser3541677 更新时间:4/18/2014 访问量:684

问:

我用来写代码。我创建了一个代码,编译它和创建文件没有问题。但是,当链接过程经过测试时,我收到了此错误。这是我在文件中得到的所有行。FORTRANASPEN plusFORTRAN.obj.dl

-------------------- sum5.lnk ------------------------------
  "sum5.obj"
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\atdms.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zemath.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zesqp.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zereport.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppmon.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pputil.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppupp.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zeftools.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zevaraccu.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppflash.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppexec.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zeshs.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pprxn.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppbase.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppeos.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zeuosutl.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zestreamu.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zeitutl.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pppces.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppstub.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zeusrutl.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pptgs.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\atdms2.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\aphier.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pptransport.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppelec.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pphysysprop.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppgamma.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\tabledatawrapper.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zeuser3.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zeratefrac.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pppoly.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zerplug.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zercstr.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zerbatch.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zeu3utils.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\zepml.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\aosbridge.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zeu3dl.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zeopi.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppncsolid.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\rtpdfutl.lib
    C:\PROGRA~2\ASPENT~1\OOMFV7~1.3\\lib\oomfutils.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppada.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zerxrplus.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\ppfact.lib
    C:\PROGRA~2\ASPENT~1\ASPENP~2.3\Engine\lib\zeradfrac.lib
    C:\PROGRA~2\ASPENT~1\APRSYS~1.3\Engine\lib\pptderefprop.lib
    libifcoremd.lib
    libifportmd.lib
    libmmd.lib
    msvcrt.lib
  -------------------- sum5.dyl ------------------------------
    EXPORTS _SUM5=_SUM5@120
    EXPORTS _SUM5@120
-------------------- Link command ------------------------------
     link /DLL /nologo /out:"sum5.dll" 
     /def:"sum5.dyl" -nodefaultlib:libifcore.lib -nodefaultlib:libifport.lib -   nodefaultlib:libm.lib -nodefaultlib:libifcoremt.lib -nodefaultlib:libmmt.lib
     -nodefaultlib:libc.lib @"sum5.lnk"
-------------------- Link message ------------------------------
    Creating library sum5.lib and object sum5.exp
    sum5.obj : error LNK2019: unresolved external symbol _N@8 referenced in function _SUM5  
    sum5.dll : fatal error LNK1120: 1 unresolved externals
    Link failure, status = 1120
    asplink return code = 5

在最后一条链接消息中,您可以看到错误。你认为代码的内容或编译器的兼容性是否有问题吗?FORTRANVisual Studio

  SUBROUTINE sum5 (SOUT, NSUBS, IDXSUB, ITYPE, NINTK, INTK, NREALK,
 2                REALK, IDS, NPO, NBOPST, NIWK, IWK, NWK, WK,
 3                NC, NR , STOIC, RATES, FLUXM, FLUXS, XCURR,
 4                NTCAT, RATCAT, NTSSAT, RATSSA, KCALL,
 *                KFAIL, KFLASH, NCOMP)

  IMPLICIT real*8 (A-H, O-Z)
  INTEGER NSUBS, NINTK, NPO, NIWK, NWK, NC, NR, MIM, NCOMP
  INTEGER I, J

   DIMENSION SOUT(40),IDXSUB(NSUBS),ITYPE(NSUBS),INK(NINTK),
 1           REALK(NREALK) ,IDS(2,1) ,NBOPST(6,NPO) ,IWK(NIWK),
 2           WK(NWK),STOIC(NSUBS,NC,NR),RATES(50,50)

  #include "ppexec_user.cmn"

  EQUIVALENCE (RMISS, USER_RUMISS)
  EQUIVALENCE (IMISS, USER_IUMISS)
  #include "dms_ncomp.cmn"

  #include "dms_maxwrt.cmn"


  REAL Ri,PA,N, Ti, M(100)
  REAL k(100,100), keq, NU(100,100)
  REAL R(100,100), P(100,100), X(100)
  REAL Xin(100), t, h, k9, tim(100)
  REAL Pi(100), K1(100,100), K2(100,100)
  REAL K3(100,100), K4(100,100), RATES(100,100)


  DIMENSION INDX(1)
  FLOW=SOUT(NCOMP_NCC+1)
  T = SOUT(NCOMP_NCC+2)
  PA = SOUT(NCOMP_NCC + 3)

   CALL PPMON_VOLV (T,PA,RESLTS,NCPM,INDX,NBOPST, 3, 1,
 1 VOLM,D2, KER)

  R=8.314
visual-studio dll fortran unresolved-external

评论

0赞 Peter Petrik 4/17/2014
您使用哪种 Fortran 编译器?哪个版本的 VS?编译 sum5.obj 时是否收到任何警告(当警告级别为最高级别时)?您是否在 sum5 文件中使用(外部/未声明)函数 N?sum5文件是Fortran文件吗?
0赞 user3541677 4/17/2014
Sum5 是 fortran 5,我的 Fortran 是 9 和 VS 2008,但关键是我已经编译并链接了这个组合中的其他 fortran 文件!
0赞 user3541677 4/17/2014
SUM5 是一个 Fortran 子程序。它只有一个参数 N,而不是一个函数!
0赞 Steve Lionel 4/17/2014
@8 后缀表示您正在使用指定 STDCALL 调用约定的选项进行编译。你能告诉我们sum5的来源,或者至少是声明部分吗?我注意到该错误涉及_SUM5,因此您没有使用STDCALL构建所有内容,所以我想知道这里发生了什么。通常,诸如此类的链接错误(忽略 @8 部分)是由于引用了未声明为数组的数组。你说 N 是一个“参数”——可能你的意思是 Fortran 术语中的虚拟参数——但如果是这样的话,你永远不会得到这个错误。
1赞 Steve Lionel 4/19/2014
哦,现在我看到您确实在原始问题中显示了 SUM5 的部分代码。N 不是 SUM5 的虚拟参数,因此对 N(1,2) 的引用看起来像是具有两个参数的函数调用。

答: 暂无答案