Linking problems with ifort and visual studio 2003

Satish Balay balay at mcs.anl.gov
Sun Mar 23 21:31:20 CDT 2008




On Mon, 24 Mar 2008, Ben Tay wrote:

> Hi Satish,
> 
> I tried to change the compiler options to be as similar to that in the cygwin
> environment. Still can't manage to get it to work. The errors I copy n paste
> is directly from the IDE of studio 2003, so I'm sure it can't be from Compaq.
> Btw, here's the options:
> 
> 
> 
> For compiling (no prob)
> 
> /nologo /Zi /O3 /fpp /include:"Debug/"
> /include:"E:\cygwin\codes\petsc-2.3.3-p10"
> /include:"E:\cygwin\codes\petsc-2.3.3-p10\include"
> /include:"E:\cygwin\codes\petsc-2.3.3-p10\bmake\win32_ifort_nodebug"
> /include:"E:\cygwin\codes\petsc-2.3.3-p10\include\mpiuni" /include:"Debug/"
> /extend_source:132 /real_size:64 /Qsave /iface:cvf /module:"Debug/"
                                   ^^^^^^^^^^^^^^^^^

Notice these options are not in the PETSc build. The option
'/iface:cvf' is the cause of this incompatibility.

Satish


> /object:"Debug/" /traceback /check:bounds /c
> 
> Cygwin:
> 
> For compiling (no prob)
> 
> /cygdrive/e/cygwin/codes/petsc-2.3.3-p10/bin/win32fe/win32fe ifort --nodetect
> -c
>  -MT -O3 -QxW -fpp  -I/cygdrive/e/cygwin/codes/petsc-2.3.3-p10
> -I/cygdrive/e/cy
> gwin/codes/petsc-2.3.3-p10/bmake/win32_ifort_nodebug
> -I/cygdrive/e/cygwin/codes/
> petsc-2.3.3-p10/include
> -I/cygdrive/e/cygwin/codes/petsc-2.3.3-p10/include/mpiun
> i        -o ex1f.o ex1f.F
> 
> Visualstudio 2003:
> 
> For linker
> 
> /OUT:"Debug/ns2d_c.exe" /INCREMENTAL /NOLOGO
> /LIBPATH:"E:\cygwin\codes\petsc-2.3.3-p10\lib\win32_ifort_nodebug"
> /LIBPATH:"E:\cygwin\codes\petsc-2.3.3-p10\externalpackages\fblaslapack\win32_ifort_nodebug"
> /LIBPATH:"E:\cygwin\codes\petsc-2.3.3-p10\include\mpiuni" /LIBPATH:"C:\Program
> Files\Tecplot\Tec360\bin\\" /NODEFAULTLIB:"LIBCMT" /DEBUG
> /PDB:"Debug/ns2d_c.pdb" /SUBSYSTEM:CONSOLE tecio.lib ws2_32.lib kernel32.lib
> user32.lib gdi32.lib advapi32.lib libpetscts.lib libpetscsnes.lib
> libpetscksp.lib libpetscdm.lib libpetscmat.lib libpetscvec.lib libpetsc.lib
> libfblas.lib libflapack.lib libmpiuni.lib
> 
> Cygwin:
> 
> For linker
> 
> /cygdrive/e/cygwin/codes/petsc-2.3.3-p10/bin/win32fe/win32fe ifort --nodetect
> -M
> T -O3 -QxW -fpp  -o ex1f ex1f.o
> -L/cygdrive/e/cygwin/codes/petsc-2.3.3-p10/lib/
> win32_ifort_nodebug
> -L/cygdrive/e/cygwin/codes/petsc-2.3.3-p10/lib/win32_ifort_n
> odebug -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc
> -L/cygdrive/e/cygwi
> n/codes/petsc-2.3.3-p10/lib/win32_ifort_nodebug
> -L/cygdrive/e/cygwin/codes/petsc
> -2.3.3-p10/lib/win32_ifort_nodebug -lmpiuni
> -L/cygdrive/e/cygwin/codes/petsc-2.3
> .3-p10/externalpackages/fblaslapack/win32_ifort_nodebug
> -L/cygdrive/e/cygwin/cod
> es/petsc-2.3.3-p10/externalpackages/fblaslapack/win32_ifort_nodebug -lflapack
> -L
> /cygdrive/e/cygwin/codes/petsc-2.3.3-p10/externalpackages/fblaslapack/win32_ifor
> t_nodebug
> -L/cygdrive/e/cygwin/codes/petsc-2.3.3-p10/externalpackages/fblaslapac
> k/win32_ifort_nodebug -lfblas Gdi32.lib User32.lib Advapi32.lib Kernel32.lib
> Ws2
> _32.lib
> 
> Did I missed out anything? I also tried to add /nodetect /MT /QxW /fpp but
> visualstudio 2003 says unrecognized options.
> 
> Thank you very much
> 
> Satish Balay wrote:
> > Ok - you are using VisualStudio 2003 + IntelFortran compilers to build
> > PETSc. A PETSc fortran example [ex1f] compiles from 'make' but not
> > from IDE?
> > 
> > Then some setting in the IDE does not match the compile option. Per
> > installation instructions - you should make sure you have *all*
> > compiler options you see from make [when compiling ex1f] are also
> > specified in the IDE settings.
> > 
> >   
> > > global.obj  error LNK2019: unresolved external symbol _PETSCINITIALIZE at 12
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > >     
> > 
> > Looks like this code is compiled by Compaq Fortran compiler - and not
> > intel fortran. Can you verify?
> > 
> > Satish
> > 
> > On Sun, 23 Mar 2008, Ben Tay wrote:
> > 
> >   
> > > Hi,
> > > 
> > > I've successfully compiled the library of PETSc. The examples also worked
> > > (I
> > > tested ex1f). However in the IDE of visual studio 2003, I can't seem to
> > > link,
> > > although compiling the individual files were fine. The errors are:
> > > 
> > > global.obj  error LNK2019: unresolved external symbol _PETSCINITIALIZE at 12
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > > global.obj  error LNK2019: unresolved external symbol _MATCREATESEQAIJ at 28
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > > global.obj  error LNK2019: unresolved external symbol _VECCREATESEQ at 16
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > > global.obj  error LNK2019: unresolved external symbol _VECDUPLICATE at 12
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > > global.obj  error LNK2019: unresolved external symbol _KSPCREATE at 12
> > > referenced
> > > in function _GLOBAL_DATA_mp_ALLO_VAR
> > > global.obj  error LNK2019: unresolved external symbol _VECASSEMBLYBEGIN at 8
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > > global.obj  error LNK2019: unresolved external symbol _VECASSEMBLYEND at 8
> > > referenced in function _GLOBAL_DATA_mp_ALLO_VAR
> > > bc.obj  error LNK2019: unresolved external symbol _MATSETVALUES at 32
> > > referenced
> > > in function _BC_mp_BC_BIG_A_S
> > > bc_impl.obj  error LNK2001: unresolved external symbol _MATSETVALUES at 32
> > > set_matrix.obj  error LNK2001: unresolved external symbol _MATSETVALUES at 32
> > > petsc_sub.obj  error LNK2001: unresolved external symbol _MATSETVALUES at 32
> > > bc_impl.obj  error LNK2019: unresolved external symbol _VECSETVALUE at 20
> > > referenced in function _BC_IMPL_mp_BC_Q_IMPL_S
> > > set_matrix.obj  error LNK2001: unresolved external symbol _VECSETVALUE at 20
> > > petsc_sub.obj  error LNK2001: unresolved external symbol _VECSETVALUE at 20
> > > petsc_sub.obj  error LNK2019: unresolved external symbol
> > > _MATASSEMBLYBEGIN at 12
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > petsc_sub.obj  error LNK2019: unresolved external symbol
> > > _MATASSEMBLYEND at 12
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > petsc_sub.obj  error LNK2019: unresolved external symbol _MATSCALE at 12
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > petsc_sub.obj  error LNK2019: unresolved external symbol
> > > _KSPSETOPERATORS at 20
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > petsc_sub.obj  error LNK2019: unresolved external symbol _KSPGETPC at 12
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > petsc_sub.obj  error LNK2019: unresolved external symbol _KSPSETTYPE at 16
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > petsc_sub.obj  error LNK2019: unresolved external symbol _PCSETTYPE at 16
> > > referenced in function _PETSC_SUB_mp_PETSC_SOLVER_MOM
> > > 
> > > 
> > > I was using Compaq visual fortran initially and I have converted the *.dsw
> > > file to the visual studio 2003 format. Of cos, I have changed the
> > > locations to
> > > the new PETSc directory. May I know what's happening? Is there anything I
> > > need
> > > to set or changed in studio 2003?
> > > 
> > > Thanks alot!
> > > 
> > > 
> > >     
> > 
> > 
> >   
> 
> 




More information about the petsc-users mailing list