Pregunta

(La pregunta original se hizo allí: http: //www.ogre3d .org / phpBB2 / viewtopic.php? t = 44832 )

Alguien preguntó: " Aunque me gustaría compilar todo en vs2008 (VC9), el SDK de PhysX está creado con vs2005 (VC8). ¿Causaría algún problema al usar todas las bibliotecas compiladas vc9 y en combinación con esta biblioteca vc8? & Quot;

Respondí que el día anterior intenté usar un archivo .lib (y un .dll) generado con VC8 e incluirlo en un exe compilado vc9, el compilador no pudo abrir el archivo .lib.

Ahora, otros respondieron que hicieron esto sin problemas ...

No puedo encontrar la información sobre la compatibilidad de lib entre vc9 y vc8.

entonces ... ¿Ayuda?

¿Fue útil?

Solución

El formato lib es COFF ( http: // msdn.microsoft.com/en-us/library/7ykb2k5f(VS.71).aspx ), también se utiliza COFF en el formato PE. Por lo tanto, espero que la mayoría, si no todas las bibliotecas creadas con vc8, puedan conectarse con vc9.

Sin embargo, encontré un hilo en msdn donde MS parece no garantizar que las bibliotecas compiladas con VC8 se vinculen bien con VC9. http: // social .msdn.microsoft.com / Forums / es-es / vcgeneral / thread / 8042a534-aa8b-4f99-81ee-e5ff39ae6e69 / )

Teniendo en cuenta estos 2 bits de información, concluiría: aunque MS no garantiza la compatibilidad total al 100%, esperaría que en la mayoría de los casos funcione la vinculación de una lib vc8 con vc9.

Espero que esto ayude. PD Escribe "el compilador no pudo abrir el archivo .lib". El vinculador es el que intenta abrir las bibliotecas que se vincularán, no el compilador.

Otros consejos

Funciona, pero tiene problemas al compartir objetos CRT / STL.

Entonces, cuando haces un 'nuevo' en una biblioteca de vc8 y lo devuelves a una función de vc9, que a su vez elimina este objeto, obtienes una afirmación de eliminar.

 T* funcInVc8Lib()
 {
     return new T();
 }

 void funcInVC9Program()
 {
     T* p = funcInVc8Lib();
     // ...
     delete p; // it should at least assert here (in _CrtIsValidHeapPtr() )
 }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top