0

我们的团队正在将整个基线从 VS2008 迁移到 VS2012。有超过 400 个 C++ 项目。有 6 个 C++ 项目显示连线错误,例如:

1>------ Rebuild All started: Project: SSLT, Configuration: Release Win32 ------
1> stdafx.cpp
1> ???
1>c1xx : fatal error C1083: Cannot open source file: '???': No such file or directory
1> ??????????????????????????????
1>c1xx : fatal error C1083: Cannot open source file: '??????????????????????????????': No such file or directory
All files which are the parameters of cl.exe seems in wrong encoding, and cl.exe can't find them.
Firstly, i think it must be encode issues of .vcxproj, so i save as other encoding style. But still happens.
Then i re-upgrade these projects with such issue, but always build error.

最后我把项目平台工具集改回VS2008,然后build pass。所以我认为这不是因为项目文件编码格式。我不知道他们在使用 2012 编译器时有什么问题。这些项目使用 2008 编译器构建没有错误。我从 VS2010 了解到,项目格式发生了很大变化,所以我找不到任何线索。

4

3 回答 3

1

顺便说一句,还有另一个原因导致这样的问题。升级后,*.vcxproj 文件中有一个属性出现了不正确的换行符,例如:/Zm300 /bigobj %(AdditionalOptions) 如果我将其改回:/Zm300 /bigobj %(AdditionalOptions) 然后运行良好,构建通过。

有此类问题的项目,80%都是因为此类问题。

于 2012-12-19T09:01:38.323 回答
0

Thanks for your reply, i automatically upgrade our projects using: devenv.exe /upgrade *.vcproj in script. Today i find the root cause is precompile header file: stdafx.h. It is because that wrong precompiling head file reference. It will cause mess file name issue.

于 2012-12-19T06:35:17.293 回答
0

我没有安装 VS2012 来检查这一点,但可能有一个函数可以在其 DLL 中以编程方式转换项目 - 尝试使用基于 - 的脚本进行搜索,或者在转换示例项目时dumpbin检查堆栈跟踪。procmon

于 2012-12-17T09:41:19.250 回答