5

我的项目在 VS 2010 的调试和发布模式下编译并运行正常。今天我尝试用 VS 2012 编译它,但出现此错误:

1>  Generating Code...
1>pcrecppd.lib(pcrecpp.obj) : error LNK2038: mismatch detected for '_MSC_VER': 
value '1600' doesn't match value '1700' in NamesEditorDlg.obj

我在代码中搜索了“_MSC_VER”,但找不到任何匹配项。我也找不到“1600”或“1700”。

所以我想知道如何解决这个问题。

4

4 回答 4

5

看起来您在 vc2012 中使用来自 vc2010 的 .lib(猜测它看起来像一个 PCRE 库)。您需要重新编译所有 .lib 或使用 DLL 的运行时链接(即 LoadLibrary、GetProcAddress 等)。

于 2012-08-05T20:32:10.803 回答
3

在项目属性中,选择常规,然后将“平台工具集”设置更改为“Visual Studio 2010 (v100)”。在我这样做之后,我的代码使用原始库编译得很好。

于 2012-11-16T19:03:37.747 回答
1

http://msdn.microsoft.com/en-us/library/b0084kay.aspx查看它似乎该变量包含编译器的版本号。我认为修复它的最佳方法是在 2012 年创建一个新项目并将源文件添加到新项目中。

于 2012-08-04T13:43:25.677 回答
0

不,您只需要检查项目的属性。存在指向旧项目文件的链接。需要在“.NET Framework 和链接”页面上打开项目属性,所有链接结束为新的 2012 项目文件添加新的。

于 2012-08-16T08:25:07.960 回答