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

LNK4099 PDB vc100.pdb' was not found - nothing works. Intel fortran evaluation

Phil_S_
Beginner
1,636 Views

I am evaluating Fortran Composer XE 2013 SP1 and trying to look at the debugger.  This is a fortran project converted from Compaq Visual fortran. All sorts of problems trying to look at variables, but probably related to these warnings:

utl_cfgfasc.obj : warning LNK4099: PDB 'vc100.pdb' was not found with 'utl_cfgfasc.obj' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
EXG_.lib(exg_xindex.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'EXG_.lib(exg_xindex.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
EXG_.lib(exg_cindex.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'EXG_.lib(exg_cindex.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
EXG_.lib(exg_inpdes.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'EXG_.lib(exg_inpdes.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_str.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_str.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_prc.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_prc.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_init.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_init.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_for.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_for.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_trnlnm.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_trnlnm.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_tim.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_tim.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_fil.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_fil.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_r.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_r.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_a.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_a.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_n.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_n.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_l.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_l.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_c.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_c.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info

Whole program Optimization is NO. I tried changing Fotran|output Files| Program Database File name to $(TargetDir)\vc100.pdb instead of $(Intdir).

I deleted all pdb and obj files before doing a clean and rebuild.

When I look at the workspace, I see vc100.pdb does in fact live in the same directory (/debug) as the obj and either the exe or lib file.

So what have I done wrong?

0 Kudos
12 Replies
Steven_L_Intel1
Employee
1,636 Views

Can you attach a ZIP of the buildlog.htm from a rebuild? I'd like to see the compile and link options used.

0 Kudos
FortranFan
Honored Contributor II
1,636 Views

Do you have multiple projects in your solution?  I ask because of the references to EXG_.lib, OS_.lib, etc. in your listing above.

If yes, do they all use the setting Fotran|output Files| Program Database File name to $(TargetDir)\vc100.pdb? and is the TargetDir the same for all (or many) projects?

It is possible the PDB output for different projects are stepping on each other and wiping each other out, leaving you with the one for the last project that was built.

I use the setting: Fotran|output Files| Program Database File name = $(Configuration)\$(PlatformName)\$(TargetName).pdb.  It gives me a unique PDB file (based on the target name) for each project in my solution and prevents the issue above.  Perhaps you can try this and see if it helps.

Cheers,

0 Kudos
Phil_S_
Beginner
1,636 Views

Sure. but more complicated. If I do a Rebuild of the project, two of the static libraries fail with "internal compiler errors". If I build each library separately, they are okay. (right click, build).

In the zip, I have two directories.

Rebuild contains buildlogs from CFGFASC (the main program) and the two libraries that fail (FIL and OS).

Build contains buildlogs from separate builds of FIL,OS (okay) and CFGFASC, (which does the LNK4099 errors). I have been desperately trying solutions to the problems from various forums, so some settings now some different to the original converted project.

0 Kudos
FortranFan
Honored Contributor II
1,636 Views

Are you using Microsoft Visual Studio?  if yes, you may want to check your Project Dependencies and Project Build Order under Project on the menu bar and make sure they are appropriate - I assume you have CFGFASC depend on the other two projects (based on your description)

You need to follow up with Intel support on the internal compiler error (ICE).  Your scenario is unusual, "If I do a Rebuild of the project, two of the static libraries fail with "internal compiler errors". If I build each library separately, they are okay. (right click, build)." - I've never seen that.  Whenever any of my code has generated an ICE, it has done so independent of how I build my project.  Steve et al. can guide you on how to use Intel Premium Support to report the ICE.

0 Kudos
Steven_L_Intel1
Employee
1,636 Views

I see you have the /Fd option set, which may be causing a problem, though I don't also see /Zi. The compile and link PDB options seem inconsistent in the CSGFASC_ project. Check the project properties Fortran > Output Files > Program Database File Name to make sure it is not set to something specific. Same for Linker > Debugging. You should also check Fortran > Command Line which probably should be empty for Additional Options.

We would like to investigate the internal compiler error if you can still reproduce it with 14.0.2. We'll need a ZIP with everything needed to reproduce the problem.

0 Kudos
Phil_S_
Beginner
1,636 Views

FortranFan, yes, this is visual studio and I am pretty sure I have dependencies correct (solution is imported from Compaq). There are multiple projects in the solution, including multiple executables and static libraries. The CFGFASC project is a relatively simple one, so was just concentrating on that. I did indeed change the pdb to ($target)file instead of ($intdir) which was default. No change. I will try your other suggestion though (Fotran|output Files| Program Database File name = $(Configuration)\$(PlatformName)\$(TargetName).pdb)

Lionel, I think the /Zd was set because changed from intdir to target dir. I deleted the program database File Name is CFGFASC and all dependent libraries. Commandline is now:

/nologo /debug:full /Od /I"H:\ETP\exergy\hefei" /I"H:\ETP\exergy" /I"H:\ETP\EXPC\EXG\Debug/" /I"H:\ETP\EXPC\OS\Debug/" /I"H:\ETP\EXPC\FIL\Debug/" /Qsave /iface:cvf /module:"Debug/" /object:"Debug/" /traceback /check:bounds /libs:static /threads /dbglibs /c

The Debug Information Format is Full (/debug:full) on project and all dependent static libraries so equiv to /Zi ?

linker command line now:

/OUT:"Debug/CFGFASC.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"H:\ETP\EXPC\CFGFASC\Debug\CFGFASC.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"Debug/CFGFASC.pdb" /SUBSYSTEM:CONSOLE kernel32.lib

However, no change to result. Still getting internal compiler errors on rebuild, and when I do build, I get buildlog of:

Linking...
Link /OUT:"Debug/CFGFASC.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"H:\ETP\EXPC\CFGFASC\Debug\CFGFASC.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"Debug/CFGFASC.pdb" /SUBSYSTEM:CONSOLE kernel32.lib /MACHINE:I386 "Debug/utl_cfgfasc.obj" "H:\ETP\EXPC\EXG\Debug\EXG_.lib" "H:\ETP\EXPC\OS\Debug\OS_.lib" "H:\ETP\EXPC\FIL\Debug\FIL_.lib"
Link: executing 'link'
utl_cfgfasc.obj : warning LNK4099: PDB 'vc100.pdb' was not found with 'utl_cfgfasc.obj' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
EXG_.lib(exg_xindex.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'EXG_.lib(exg_xindex.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
EXG_.lib(exg_inpdes.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'EXG_.lib(exg_inpdes.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
EXG_.lib(exg_cindex.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'EXG_.lib(exg_cindex.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_prc.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_prc.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_str.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_str.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_init.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_init.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_for.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_for.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_fil.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_fil.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_trnlnm.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_trnlnm.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
OS_.lib(os_tim.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'OS_.lib(os_tim.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_c.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_c.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_r.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_r.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_a.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_a.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_n.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_n.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info
FIL_.lib(fil_l.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'FIL_.lib(fil_l.obj)' or at 'H:\ETP\EXPC\CFGFASC\Debug\vc100.pdb'; linking object as if no debug info

Embedding manifest...
mt.exe /nologo /outputresource:"H:\ETP\EXPC\CFGFASC\Debug\CFGFASC.exe;#1" /manifest "H:\ETP\EXPC\CFGFASC\Debug\CFGFASC.exe.intermediate.manifest"

CFGFASC_ - 0 error(s), 16 warning(s)

 

0 Kudos
Phil_S_
Beginner
1,636 Views

Fortranfan. Tried setting the database file as you suggested, but no change - still getting the same linker warnings.

0 Kudos
FortranFan
Honored Contributor II
1,636 Views

p.scadden@gns.cri.nz wrote:

Fortranfan. Tried setting the database file as you suggested, but no change - still getting the same linker warnings.

Do you still get the internal compiler errors (ICEs)?  If yes, you should follow-up as Stevel Lionel (Dr. Fortran, the "guru" at Intel) suggested in Quote #6.

Also, look at first paragraph in Quote #6 by Steve: some of your settings appear inconsistent.  If you can, you should consider making a ZIP of your entire solution and send it to Intel, or if you're ok with it, post it on this forum.  Without looking at your Visual Studio solution file and the project settings within it, it is rather difficult to suggest the next course of action for you.

0 Kudos
Phil_S_
Beginner
1,636 Views

I aim to install the update to compiler later today and will see of the ICEs. I yes, Fortranfan, I am definitely deferring to Steve Lionel! I remember the name from Vax Fortran days (where this code originated in the first place).

0 Kudos
FortranFan
Honored Contributor II
1,636 Views

p.scadden@gns.cri.nz wrote:

I aim to install the update to compiler later today and will see of the ICEs. I yes, Fortranfan, I am definitely deferring to Steve Lionel! I remember the name from Vax Fortran days (where this code originated in the first place).

By the way, I assume you are quite familiar with using Intel Fortran inside of Visual Studio.  If not, have you considered (or tried) building a simple "Hello, World" type Fortran program that makes use of a couple of very simple procedures (e.g., add two/subtract numbers) that you make available in a static library or two and ensure this works ok?   If not, you can give this a thought.  This is only to help you check out your installation and setup without having to worry about the ICEs.

0 Kudos
Phil_S_
Beginner
1,636 Views

I am totally new to intel Fortran but very familiar with VS for C++,C#,C development. I am used to fortran with VS98 (compaq fortran) but I am aware there may be some gotchas. The update didnt fix anything but it did move one critical failure to a different library.

At this stage, I am concerned about the conversion of the compaq fortran project, and I am building this simple one (1executable and 3 libraries, no dlls, no C) from scratch to see difference that makes.

0 Kudos
Phil_S_
Beginner
1,636 Views

Okay, when I recreated the solution from scratch, it works. No internal compiler errors, no link problems. I had get rid of /warn:interfaces to deal with complex versus real arrays and some other minor incompatibilities (LOGICAL v. LOGICAL*1).Still end up with quite different command lines so I will investigate those. Its quite a bit of work rebuilding complex solutions, but I guess the result looks a lot cleaner too. (no funny underscores attached to project names all over the show). I can live with it.

0 Kudos
Reply