-->

LNK1318: Unexpected PDB error; OK (0)

2020-07-02 08:34发布

问题:

I'm trying to link against a library (libcef_wrapper_dll.lib) that was built with the /MDd flag. My application is build with /MDd and /CLR so should be compatible. The project compiles fine but when linking I get the very unhelpful error below:

   Error    1   fatal error LNK1318: Unexpected PDB error; OK (0) ''    c:\Projects\Cef\CefSharp\libcef_dll_wrapper.lib 1   CefSharp

I don't have a .PDB file for the .LIB, do I need one?

回答1:

Turned out that I needed to delete all of the project temp files inc. caches etc., kill the debug symbol server and restart windows.



回答2:

I've seen LNK1318: Unexpected PDB error; UNKNOWN (24) when linking.

It happened when I had more than two links of large outputs happening at once - mspdbsrc.exe used more and more memory, hit 2gig or so, then crashed.



回答3:

This one worked for me: Project properties -> C/C++ -> Code Generation -> Enable Function Level Linking -> Yes



回答4:

Rebuilding the project solved the problem



回答5:

Best solution for me has always been to simply kill the symbol server. I have a batch file on my desktop to do this:

@for /F "tokens=2 delims= " %%I in ('tasklist^|findstr /I "mspdbsrv.exe"') do taskkill /F /PID %%I>NUL && echo Process killed.


回答6:

I got the build error as follow also: LINK : fatal error LNK1318: Unexpected PDB error;

There are severa URL talked about this, but it seeems no completed solutions. Someone said mspdbsrv.exe is the trouble maker. After I clean the incremental build result and make a real clean build, it works well.

http://connect.microsoft.com/VisualStudio/feedback/details/296978/link-fatal-error-lnk1318-unexpected-pdb-error-unknown-24

http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/9e58b7d1-a47d-4a76-943a-4f35090616e8



回答7:

This is a technical limitation of the VC linker. You should try split your code modules up more. Splitting up libraries also help with extremely long link times.

See if you can successfully build on release mode



回答8:

If using /MP or /MDd with MSBuild, also use the /Zf compiler option. (See https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-error-lnk1318 )

Other troubleshooting steps for LNK1318:

  • Do a full Clean/Rebuild
  • Restart mspdbsrv.exe
  • Turn off antivirus checks in your project directories.
  • Change the Debug Information Format to /C7 or None
  • Try building with /property:_IsNativeEnvironment=true


回答9:

I had the problem because I had a file with the /clr option that was messing things up. I moved the CLR specific code to a separate file, cleaned, rebuilt and the problem is gone.