主题:[讨论]链接错误。。。求助
supergoldenfish
[专家分:0] 发布于 2010-06-05 06:55:00
在编译拉格朗日插值时链接错误,不知道怎么办..........
问题提示如下,
Linking...
libc.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/assignment testing.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
assignment testing.exe - 2 error(s), 0 warning(s)
程序如下,
SUBROUTINE lagrangeinterpolation(X,Y,m,T,Z)
DIMENSION X(m),Y(m)
REAL X,Y,T,Z,S
IF (m>0) THEN
IF (X(1)>X(m)) THEN
DO I=1,m/2
Z=X(I)
X(I)=X(m-I+1)
X(m-I+1)=Z
Z=Y(I)
Y(I)=Y(m-I+1)
Y(m-I+1)=Z
END DO
END IF
END IF
Z=0.0
IF (m<=0) RETURN
IF (m==1) THEN
Z=Y(1)
RETURN
END IF
IF (m==2) THEN
Z=(Y(1)*(T-X(2)-Y(2)*(T-X(1))))/(X(1)-X(2))
RETURN
END IF
I=1
10 IF (X(I)<T) THEN
I=I+1
IF (I<=m) GOTO 10
END IF
K=I-4
IF (K<1) K=1
M1=I+3
IF (M1>m) M1=m
DO I=K,M1
S=1.0
DO J=K,M1
IF (j/=I) THEN
S=S*(T-X(J))/(X(I)-X(J))
END IF
END DO
Z=Z+S*Y(I)
END DO
RETURN
END
谁能帮忙看看?解决下,另外求拉格朗日插值得积分和求导程序。[em8]
回复列表 (共9个回复)
沙发
doctorlive [专家分:800] 发布于 2010-06-05 09:49:00
main
这个子程序没有申明
3 楼
asymptotic [专家分:16630] 发布于 2010-06-05 12:16:00
最简单的方法 是在你 那个 end 后再加一个 end 。
4 楼
asymptotic [专家分:16630] 发布于 2010-06-05 12:16:00
SUBROUTINE lagrangeinterpolation(X,Y,m,T,Z)
DIMENSION X(m),Y(m)
REAL X,Y,T,Z,S
IF (m>0) THEN
IF (X(1)>X(m)) THEN
DO I=1,m/2
Z=X(I)
X(I)=X(m-I+1)
X(m-I+1)=Z
Z=Y(I)
Y(I)=Y(m-I+1)
Y(m-I+1)=Z
END DO
END IF
END IF
Z=0.0
IF (m<=0) RETURN
IF (m==1) THEN
Z=Y(1)
RETURN
END IF
IF (m==2) THEN
Z=(Y(1)*(T-X(2)-Y(2)*(T-X(1))))/(X(1)-X(2))
RETURN
END IF
I=1
10 IF (X(I)<T) THEN
I=I+1
IF (I<=m) GOTO 10
END IF
K=I-4
IF (K<1) K=1
M1=I+3
IF (M1>m) M1=m
DO I=K,M1
S=1.0
DO J=K,M1
IF (j/=I) THEN
S=S*(T-X(J))/(X(I)-X(J))
END IF
END DO
Z=Z+S*Y(I)
END DO
RETURN
END
end
5 楼
doctorlive [专家分:800] 发布于 2010-06-05 19:02:00
在调用main子程序的程序开头 加一句 integer(real) main
6 楼
supergoldenfish [专家分:0] 发布于 2010-06-06 02:26:00
加end,,, 后链接还是有一样的错误。。。
加integer(real) main 后错误一堆。。。。。
7 楼
supergoldenfish [专家分:0] 发布于 2010-06-06 02:39:00
加 end 后的 结果
Linking...
Text1.obj : error LNK2005: _main already defined in Text22.obj
Text2.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Text2.exe - 2 error(s), 0 warning(s)
怎么办呢
8 楼
yuanhuzhouni [专家分:260] 发布于 2010-06-06 08:00:00
你没有写主程序,我给你写个例子:
program test
integer,parameter::m=4
real::X(m)=(/-1.,1.,2.,5./),Y(m)=(/-7.,7.,-4.,35./)
real::T=1.,Z=0.
call lagrangeinterpolation(X,Y,m,T,Z)
write(*,*) Z
end
我来回复