Visual studio 在Visual Studio 2012中编译Firefox加载项

Visual studio 在Visual Studio 2012中编译Firefox加载项,visual-studio,firefox-addon,visual-studio-2012,xpcom,gecko,Visual Studio,Firefox Addon,Visual Studio 2012,Xpcom,Gecko,可能重复: 我正在将XPCOM Firefox插件项目从VisualStudio2010迁移到VisualStudio2012。当我打开项目时,VisualStudio会询问我是否希望项目使用最新的C++编译器。如果我说“否”,则会出现以下编译错误: 错误1错误MSB8020:Visual Studio 2010的生成工具 找不到(平台工具集='v100')。使用v100构建 “生成工具”,单击“项目”菜单或右键单击 解决方案,然后选择“更新VC++项目…”。安装可视 Studio 2010要

可能重复:

我正在将XPCOM Firefox插件项目从VisualStudio2010迁移到VisualStudio2012。当我打开项目时,VisualStudio会询问我是否希望项目使用最新的C++编译器。如果我说“否”,则会出现以下编译错误:

错误1错误MSB8020:Visual Studio 2010的生成工具 找不到(平台工具集='v100')。使用v100构建 “生成工具”,单击“项目”菜单或右键单击 解决方案,然后选择“更新VC++项目…”。安装可视 Studio 2010要使用Visual Studio 2010生成进行生成 工具。C:\程序文件 (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:检测到“\u MSC\u VER”不匹配:值“1600”不匹配 匹配值“1700”


我无法安装Visual Studio 2010。我想我可以使用VisualStudio2012自己编译Gecko,尽管这似乎需要很多工作,我不确定它是否会工作。因此,请告诉我在Visual Studio 2012中编译Firefox插件的最佳方法。

当您编译二进制XPCOM组件时,必须使用与编译Firefox本身相同的编译器,否则无法提供二进制兼容性。目前,无论是通过免费的VisualStudioExpress 2010还是通过其他方式,都是如此


如果XPCOM组件的目的只是运行一些本地代码,那么您可以考虑编译一个常规的DLL,并通过它调用它,然后您可以使用任何您喜欢的编译器——没有二进制兼容性约束(它通常也是值得推荐的,因为您不再需要为每个Firefox发布重新编译)。.

我已经看过那篇文章了,这个问题不是重复的。在本例中,所讨论的库是XPCOM/Firefox的库,“您需要重新编译所有的.lib或带有DLL的运行时链接”。解决方案应该适用,应该适用,这就是我在问题中提到它的原因,但是:(1)最终结果是否仍然适用于Firefox?还有(2)有没有更好的解决方案,例如,一个二进制文件已经编译成这样了?五个版主怎么可能一起都错了,这让我很惊讶。数量上的力量!我个人不在乎,因为瓦拉迪米尔·帕兰特已经给了我我需要的答案。但是,如果你想用这样的假复制标志来污染SO,那就直接去吧。@HappyNomad复制者的回答说,这个问题是由编译器版本不匹配引起的。看起来确实是这样,所以这是个骗局。如果你仍然认为这是错误的关闭,你可以提出这个问题(PS:那些不是mods,他们是五个像你一样的用户。如果你能让五个用户同意你的观点,这不是一个复制品,它将被重新打开)。