Linking problems with ifort and visual studio 2003

Ben Tay zonexo at gmail.com
Mon Mar 24 00:58:06 CDT 2008


Oh thanks Satish. It finally worked!

Satish Balay wrote:
>
> 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