未定义对“guia1”和“ej14”的引用;编译Fortran代码时
我试图编写一个程序,该程序使用带有函数和子例程的模块,但geany在我尝试构建时告诉我:未定义对“guia1”和“ej14”的引用;编译Fortran代码时,fortran,geany,Fortran,Geany,我试图编写一个程序,该程序使用带有函数和子例程的模块,但geany在我尝试构建时告诉我: gfortran -Wall -o "ej15" "ej15.f90" (en el directorio: C:\Users\Pedro\proyectos\Guia 1) C:\Users\Pedro\AppData\Local\Temp\cciNhadr.o:ej15.f90:(.text+0x280): undefined reference to `__gu
gfortran -Wall -o "ej15" "ej15.f90" (en el directorio: C:\Users\Pedro\proyectos\Guia 1)
C:\Users\Pedro\AppData\Local\Temp\cciNhadr.o:ej15.f90:(.text+0x280): undefined reference to `__guia1_ej14_MOD_crea'
collect2.exe: error: ld returned 1 exit status
Ha fallado la compilación.
该计划是:
program Guia1_ej15
use Guia1_ej14
implicit none
integer n
real(8), allocatable:: a(:,:)
print*, 'Ingrese dimension de matriz'
read*, n
print*,' '
allocate (a(n,n))
call crea(a,n)
end program
该模块是:
module Guia1_ej14
contains
subroutine crea(b,m)
implicit none
integer i,j,m
real(8),allocatable:: b(:,:)
do i=1,m
do j=1,m
read*, b(i,j)
end do
end do
end subroutine crea
end module Guia1_ej14
欢迎光临,请拿着这本书阅读。你的题目很糟糕,我改成了更具体的题目。你应该给我们更多的信息。模块是否位于不同的文件中?如何编译它?您是如何在Geany中设置项目/编译的?我们需要尽可能多的信息。请注意,我们已经有很多关于
未定义引用
错误的问题和答案。似乎Guia1_ej14
位于不同的文件中。您可能有一个guia_ej14.o
文件。将其添加到命令行:gfortran-Wall-o“ej15”ej15.f90“guia_ej14.o
。我不知道怎么和geany一起做对不起我是新手。对不起,如果我的英语不好,我来自阿根廷。是的,我有两个不同的文件,一个有模块,另一个有程序。他们都在同一个项目里。佩德罗,你的英语很好。问题是,您需要告诉geany在程序链接中包含带有例程的目标文件。如果文件名为ej14.f90
,则首先编译此文件,然后链接到ej14.o
。我建议先从命令行学习使用编译器,然后再从图形环境转到建筑。您可以在命令提示符(shell)中执行evets listen命令。它们应该起作用。当然,你仍然可以在这里问,如何在Geany做到这一点。但是,我不能帮你,我不使用Geany。欢迎,请拿着这本书阅读。你的题目很糟糕,我改成了更具体的题目。你应该给我们更多的信息。模块是否位于不同的文件中?如何编译它?您是如何在Geany中设置项目/编译的?我们需要尽可能多的信息。请注意,我们已经有很多关于未定义引用
错误的问题和答案。似乎Guia1_ej14
位于不同的文件中。您可能有一个guia_ej14.o
文件。将其添加到命令行:gfortran-Wall-o“ej15”ej15.f90“guia_ej14.o
。我不知道怎么和geany一起做对不起我是新手。对不起,如果我的英语不好,我来自阿根廷。是的,我有两个不同的文件,一个有模块,另一个有程序。他们都在同一个项目里。佩德罗,你的英语很好。问题是,您需要告诉geany在程序链接中包含带有例程的目标文件。如果文件名为ej14.f90
,则首先编译此文件,然后链接到ej14.o
。我建议先从命令行学习使用编译器,然后再从图形环境转到建筑。您可以在命令提示符(shell)中执行evets listen命令。它们应该起作用。当然,你仍然可以在这里问,如何在Geany做到这一点。但是,我不能帮你,我不使用Geany。