2015-12-01 72 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