Pergunta

(A pergunta original foi perguntado lá: http: //www.ogre3d .org / phpBB2 / viewtopic.php? t = 44832 )

Alguém perguntou: "Enquanto eu gostaria de tudo construir em vs2008 (VC9), o PhysX SDK é construído com vs2005 (VC8). Será que isso causa problemas, utilizando todos VC9 libs compilado e usado em combinação com este lib vc8?"

Eu respondi que no dia anterior eu tentei usar um arquivo lib (e uma .dll) gerado com VC8 e incluí-lo em um VC9 compilado exe, o compilador não pôde abrir o arquivo .lib.

Agora, outro respondeu que eles fizeram isso sem problemas ....

Não consigo encontrar as informações sobre compatibilidade de lib entre VC9 e vc8.

então ... Ajuda?

Foi útil?

Solução

O formato lib é COFF ( http: // msdn.microsoft.com/en-us/library/7ykb2k5f(VS.71).aspx ), também COFF é usado no formato PE. Assim eu esperaria que a maioria, senão todas as bibliotecas construídas com vc8 ser linkable com VC9.

No entanto eu encontrei um fio no MSDN, onde MS não parece garantir que as bibliotecas compiladas com VC8 ligará bem com VC9. http: // sociais .msdn.microsoft.com / Fóruns / en-US / vcgeneral / thread / 8042a534-aa8b-4f99-81ee-e5ff39ae6e69 / )

Tendo em conta esta 2 bits de informação gostaria de concluir:. Embora MS não garante a total compatibilidade 100% eu esperaria que na maioria dos casos ligando um lib vc8 com VC9 ao trabalho

Espero que isso ajude. P. S. Você escreve "o compilador não pôde abrir o arquivo .lib.". O ligador é aquele que tenta abrir as bibliotecas a ser vinculado, não o compilador.

Outras dicas

Ele funciona, mas você tiver problemas ao compartilhar CRT / objetos STL.

Então, quando você faz um 'novo' em uma biblioteca vc8 e retornar isso para uma função VC9, que por sua vez elimina este objeto, você recebe uma declaração de exclusão.

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

 void funcInVC9Program()
 {
     T* p = funcInVc8Lib();
     // ...
     delete p; // it should at least assert here (in _CrtIsValidHeapPtr() )
 }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top