(最初的问题在这里被问到了:http://www.ogre3d.org/phpBB2/viewtopic.php?t=44832)
有人问:
“虽然我想在vs2008(VC9)中构建所有内容,但是PhysX SDK是使用vs2005(VC8)构建的。使用所有vc9编译的库并与该vc8库结合使用时,这会引起任何问题吗?”
我回答说,在尝试使用VC8生成的.lib文件(和.dll)并将其包含在vc9编译的exe文件中的前一天,编译器无法打开.lib文件。
现在,其他人回答了他们这样做没问题。
我找不到有关vc9和vc8之间的lib兼容性的信息。
所以...有帮助吗?
最佳答案
lib格式为COFF(http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.71).aspx),PE格式中也使用COFF。
因此,我希望大多数(如果不是全部)用vc8构建的库都可以与vc9链接。
但是我在msdn上发现了一个线程,其中MS似乎不保证用VC8编译的库将与VC9很好地链接。 http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/8042a534-aa8b-4f99-81ee-e5ff39ae6e69/)
考虑到这2位信息,我得出的结论是:尽管MS不能保证完全100%的兼容性,但我希望在大多数情况下,将vc8 lib与vc9链接即可。
希望这可以帮助。
附言您编写“编译器无法打开.lib文件。”。链接器是试图打开要链接的库的链接器,而不是编译器。