Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29253 Discussions

LNK1207 error with /debug switch on IVF v15.0 & 16.0

David_Vowles
Beginner
2,151 Views

Hello all,

Compilation with IVF v15.0 & v16.0 (ia32) using the following command fails.

ifort /debug testprog.f90

The following error message is produced:

LINK : fatal error LNK1207: incompatible PDB format in 'c:\David\test\testprog.pdb'; delete and rebuild.

It would appear that with debug enabled the following intermediate files are produced: testprog.pdb, testprog.ilk. Furthermore a file vc140.pdb is created. These are not produced when when debug is disabled.

(1) What is the purpose of these files?

(2) Are they required to run the executable? (It would appear from my experiments that they are not needed but a definitive view would be appreciated.)

(3) If these files are not needed is there a switch to automatically delete them once compilation / linking is complete?

(4) My experimentation suggests that if you compile first with, say ifort v11.1, and then with ifort v16.0 then the LNK1207 is produced. It is not clear why the linker is trying to access the previously created *.pdb file or why it is not automatically clobbered by the linker.

Note that testprog.f90 is the following minimal program:

PROGRAM TESTPROG
END PROGRAM TESTPROG

Many thanks,
David.

 

 

0 Kudos
1 Reply
Steven_L_Intel1
Employee
2,151 Views

The PDB is the "Program DataBase" which is where debug symbols are stored. It is used only for debugging. The .ilk file is also not used for execution.

The way VS works is that it build up a .pdb based on the individual compiled source's PDB files, and the combined one is VS version specific.

0 Kudos
Reply