(最初的问题在这里被问到了: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文件。”。链接器是试图打开要链接的库的链接器,而不是编译器。

09-08 04:25