2015-12-01 74 views
5
试图在我的项目(的Visual Studio 2015年更新1)使用新的铿锵与Visual代码生成时

,我收到以下错误:的Visual Studio 2015年更新1,铛错误

clang.exe : error : cannot specify -o when generating multiple output files 

这仅仅是一个新使用自动生成的主项目创建项目。

我真的不知道该怎么办。

任何帮助表示赞赏。

+0

好了,'-o'选项指定输出文件的名称。错误消息表明铛认为它需要生成*多个*输出文件;这是为什么? – DevSolar

+0

@DevSolar上帝只知道为什么铿锵认为它需要输出多个文件。 – Artur

+0

命令行是什么样的? – DevSolar

回答

6

这并不是很清楚你在做什么,但很明显你没有使用跨平台节点中的一个Clang项目模板。我可以通过使用Win32> Win32项目模板并将项目的平台工具集选择更改为“Clang 3.7”来重新生成问题。

这不起作用,它完全消除了预编译头功能。它以某种方式确信它需要编译stdafx.h。不只一次,它将编译器传递给它两次。这使得Clang barf有了这个错误信息,它一次只能接受一个文件。它也不知道如何利用Clang的PCH支持,没有必要的-mit-pch选项。

您需要关闭该功能才能领先。项目>属性> C/C++>预编译头文件>预编译头文件=“不使用...”。选择stdafx.cpp并重复。

解决了构建问题,最终的可执行文件有点令人惊讶,运行没有问题。应该稍微清楚一点,您在未曾由Microsoft测试过的场景中使用Clang。看起来IntelliSense解析器也需要更多的工作。 Afaik Clang支持was intended来定位Android和iOS,当前版本为alpha质量。

+0

随附嗨,谢谢你的答案。在最新的更新铿锵声被添加到目标不仅仅是Android和iOS – Artur

+3

Hmya,如果他们真的测试了它。只需按照解决方法来解决此问题。 –

+0

G-rea-t!多谢兄弟!令人难以置信的是他们(MS&VS)如何让这种事情发生。取消frikkin',可信。 – Artur

1

正如接受答案的补充,如果您在设置Precompiled Header = "Not using..."后仍然遇到此问题。另一个问题可能是Object File Name字段中的值不正确。

那场下可以找到:项目>属性> C/C++>常规>目标文件名= $(IntDir)%(filename).obj

注:最初发现这个解决方案在这里:http://www.progtown.com/topic2009949-clang