0

可能重复:
从 Visual Studio 2010 编译 MFC 应用程序到 2012 RC 导致 LNK2038

我正在将一个 XPCOM Firefox 附加项目从 Visual Studio 2010 移动到 Visual Studio 2012。当我打开该项目时,Visual Studio 会询问我是否希望该项目使用最新的 C++ 编译器。如果我说不,那么我会得到这个编译错误:

错误 1 ​​错误 MSB8020:找不到 Visual Studio 2010 的构建工具(平台工具集 = 'v100')。要使用 v100 构建工具进行构建,请单击“项目”菜单或右键单击解决方案,然后选择“更新 VC++ 项目...”。安装 Visual Studio 2010 以使用 Visual Studio 2010 构建工具进行构建。C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets 42 5 FF (Visual Studio 2010)

如果我说是,那么我会在 xulrunner-sdk\lib 目录中为 xpcomglue_s_nomozalloc.lib 收到其中五个编译错误:

错误 LNK2038:检测到“_MSC_VER”不匹配:值“1600”与值“1700”不匹配

我无法安装 Visual Studio 2010。我想我可以自己编译 Gecko,使用 Visual Studio 2012,虽然这看起来工作量很大,而且我不确定它是否会工作。所以请告诉我在 Visual Studio 2012 中编译我的 Firefox 插件的最佳方法。

4

1 回答 1

1

当您编译二进制 XPCOM 组件时,您必须使用与编译 Firefox 本身相同的编译器 - 否则不会给出二进制兼容性。目前这意味着使用 Visual C++ 10,无论是通过免费的 Visual Studio Express 2010 还是通过其他方式。

如果 XPCOM 组件的目的只是运行一些本机代码,那么您可以考虑编译一个常规 DLL 并通过js-ctypes调用它,那么您可以使用任何您喜欢的编译器 - 没有二进制兼容性限制(通常也推荐因为您不再需要为每个 Firefox 版本重新编译)。

于 2012-10-08T07:49:04.917 回答