Visual Studio 2015年更新1,clang错误

Visual Studio 2015 Update 1, clang error

在我的项目(Visual Studio 2015 Update 1)中尝试将新的 clang 与 Visual Codegen 结合使用时,出现以下错误:

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

这只是一个新创建的项目,带有自动生成的 main。

我真的不知道该怎么办。

感谢任何帮助。

不是很清楚您在做什么,但很明显您没有在跨平台节点中使用 Clang 项目模板之一。我可以通过使用 Win32 > Win32 项目模板并将项目的平台工具集选择更改为 "Clang 3.7".

来重现您的问题

那是行不通的,它完全破坏了预编译的 header 功能。它以某种方式确信它需要编译 stdafx.h。不只是一次,它两次将其传递给编译器。这让 Clang 厌恶这条错误消息,它一次只接受一个文件。它也不知道如何利用 Clang 的 PCH 支持,没有所需的 -emit-pch 选项的迹象。

您需要先关闭该功能。项目 > 属性 > C/C++ > 预编译 Headers > 预编译 Header = "Not using..."。 Select stdafx.cpp 并重复。

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

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

可以在以下位置找到该字段:项目 > 属性 > C/C++ > 常规 > 对象文件名 = $(IntDir)%(filename).obj

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