undefined reference to

Waad Subber w_subber at yahoo.com
Sun Aug 19 13:30:47 CDT 2007


Thanks for response
I removed the lines and I got the following output after executing the make file:

gfortran -c  -fPIC -Wall -Wno-unused-variable -g   -I/home/waad/soft/petsc-2.3.3-p4 -I/home/waad/soft/petsc-2.3.3-p4/bmake/linux-gnu-c-debug -I/home/waad/soft/petsc-2.3.3-p4/include  -I/home/waad/mpich2-install/include        -o pro.o pro.F
gfortran -fPIC -Wall -Wno-unused-variable -g   -o exe pro.o    -Wl,-rpath,/home/waad/soft/petsc-2.3.3-p4/lib/linux-gnu-c-debug -L/home/waad/soft/petsc-2.3.3-p4/lib/linux-gnu-c-debug -lpetscts -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc        -L/usr/lib64 -lX11 -Wl,-rpath,/home/waad/mpich2-install/lib -L/home/waad/mpich2-install/lib -lmpich -lpthread -llapack -lblas -lm -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -Wl,-rpath,/lib/../lib64 -L/lib/../lib64 -Wl,-rpath,/usr/lib/../lib64 -L/usr/lib/../lib64 -ldl -lgcc_s -lgfortranbegin -lgfortran -lm -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -Wl,-rpath,/lib/../lib64 -Wl,-rpath,/usr/lib/../lib64 -lm  -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.1.2
 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2 -Wl,-rpath,/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64 -Wl,-rpath,/lib/../lib64 -L/lib/../lib64 -Wl,-rpath,/usr/lib/../lib64 -L/usr/lib/../lib64 -ldl -lgcc_s -ldl 
pro.o: In function `MAIN__':
/home/waad/petsc_test/example1/solvetest/pro.F:38: undefined reference to `mvec_'
collect2: ld returned 1 exit status
make: [exe] Error 1 (ignored)
/bin/rm -f -f pro.o

 

Barry Smith <bsmith at mcs.anl.gov> wrote: 

 Not sure what the problem is, but 
you should remove the lines
> mvec.o: mvec.F                                                                                                        
>     mpif90 -c mvec.F  
you do not need them.

  Please send ALL the output when you run make exe after the change.

   Barry



On Sun, 19 Aug 2007, Waad Subber wrote:

> Hello everyone
> 
> I am calling a subroutine from my main program, and when I compile the code I get an error message  (undefined reference to 'mvec_') referring to the call statement in the main program. I have defined the subroutine as external in the main program using (external mvec), but the problem still unsolved ..! 
> 
> The makefile looks like:
> 
> OBJS= mvec.o
> CFLAGS        = 
> FFLAGS        = 
> CPPFLAGS        =
> FPPFLAGS        =
> 
> 
> include ${PETSC_DIR}/bmake/common/base
> 
> all: $(OBJS)
> 
> mvec.o: mvec.F
>     mpif90 -c mvec.F
> 
> exe: pro.o $(OBJS) 
>     -${FLINKER} -o exe pro.o $(OBJS)  ${PETSC_LIB}
>      ${RM} -f pro.o
> 
> include ${PETSC_DIR}/bmake/common/test
> 
> Can any one help me with this issue please ...!
> 
> Thanks
> 
> Waad
> 
>        
> ---------------------------------
> Park yourself in front of a world of choices in alternative vehicles.
> Visit the Yahoo! Auto Green Center.



       
---------------------------------
Be a better Heartthrob. Get better relationship answers from someone who knows.
Yahoo! Answers - Check it out. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20070819/047f90c2/attachment.htm>


More information about the petsc-users mailing list