2010-11-23 16 views
14

Estoy tratando de vincular con una biblioteca (libcef_wrapper_dll.lib) que se creó con el indicador/MDd. Mi aplicación es compilada con/MDd y/CLR, por lo que debería ser compatible. El proyecto compila bien, pero cuando se enlaza consigo el error muy poco útil a continuación:LNK1318: Error imprevisto de PDB; OK (0)

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

no tengo un archivo PDB para el .LIB, qué necesito uno?

+0

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

Respuesta

14

Resultó que necesitaba eliminar todos los archivos temporales del proyecto inc. cachés etc., elimine el servidor de símbolos de depuración y reinicie Windows.

4

He visto LNK1318: Error imprevisto de PDB; DESCONOCIDO (24) al enlazar.

Sucedió cuando tuve más de dos enlaces de grandes salidas sucediendo a la vez: mspdbsrc.exe usó más y más memoria, presionó 2gig o más, y luego se bloqueó.

1

Recibí el error de compilación como sigue también: ENLACE: error fatal LNK1318: Error PD inesperado;

Hay varias URL habladas sobre esto, pero no ve soluciones completas. Alguien dijo que mspdbsrv.exe es el creador de problemas. Después de limpiar el resultado de compilación incremental y hacer una compilación limpia real, funciona bien.

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

0

tuve el problema porque no tenía un archivo con la opción/clr que fue ensuciar las cosas. Moví el código específico de CLR a un archivo separado, lo limpié, reconstruí y el problema desapareció.

1

Esta es una limitación técnica del enlazador VC. Debería intentar dividir más sus módulos de código. La división de bibliotecas también ayuda con tiempos de enlace extremadamente largos.

ver si se puede construir con éxito el modo de liberación

1

Ésta funcionó para mí: Propiedades del proyecto -> C/C++ -> Generación de código -> Habilitar Función Acoplamiento Nivel -> Sí

2

la reconstrucción de las proyecto resuelto el problema

3

La mejor solución para mí siempre ha sido simplemente matar el servidor de símbolos. Tengo un archivo por lotes en el escritorio para hacer esto:

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

Esto es todo lo que tenía que hacer también. Use Process Explorer para eliminar mspdbsrv.exe, vuelva a vincular el proyecto anómalo. –

Cuestiones relacionadas