2014-03-14 101 views
10

自Xcode 5.1發佈以來的最後幾天,我沒有運氣。xcode LLVM 5.1叮咚錯誤

我不斷收到關於支持的iOS 6.0的老項目這個錯誤:

ERROR: 

clang: error: unknown argument: '-fno-obj-arc' [-Wunused-command-line-argument-hard-error-in-future] 
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future 
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1 

目前在互聯網上不是這麼多的帖子和一些建議似乎是改變你的CFLAGS,但我不知道如何在Xcode中做到這一點。

蘋果表明,這從他們的文件:

編譯

由於蘋果LLVM編譯器5.1版(鐺-502)及更高版本, 優化級別-O4不再意味着鏈接時優化( LTO)。 爲了構建LTO,明確使用-flto選項以及 來優化級別標誌。 (15633276) 中的Apple LLVM編譯器Xcode 5.1將無法識別的命令行選項視爲錯誤。在構建Python本機擴展和 Ruby Gems時,已經看到這個 問題,其中一些無效的編譯器選項當前被指定爲 。使用無效編譯器選項的項目將需要更改爲 以刪除這些選項。爲了幫助緩解這一轉變中, 編譯器將暫時接受一個選項,錯誤降級到 警告:

-Wno-error=unused-command-line-argument-hard-error-in-future

注意:此選項將不會在未來被支持。要解決此問題 此問題,請設置ARCHFLAGS環境變量以將 錯誤降級爲警告。例如,你可以安裝一個Python自身 擴展用:

$ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install ExtensionName

同樣,你可以安裝一個Ruby寶石:

$ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName 16214764 updated

我如何獲得這個解決方法嗎?顯然蘋果公司已經搞砸了,因爲它應該只是根據他們的文件向我發出警告而不是錯誤。

任何幫助將不勝感激。在問題解決之前,我無法構建我的應用。

+0

的可能重複(http://stackoverflow.com/questions/ 6646052/how-can-i-disable-arc-for-a-single-file-in-a-project) – matt

+0

你有這個問題嗎? –

+0

懷疑[類似Pillow編譯修復可能有幫助](http://garmoncheg.blogspot.com/2014/04/pillow-compile-error-clang-wno.html) – garmoncheg

回答

12

有沒有這樣的事情-fno-obj-arc。這從來沒有工作正常;你只是沒有看到警告。正確的形式是-fno-objc-arc

編輯(從我下面的評論中抽取的附加信息):這不是叮噹聲錯誤。這是項目中的錯誤;鏗鏘只是在報道。該項目本身錯誤地包含-fno-obj-arc參數,可能在目標的編譯源構建階段(如此處所述:How can I disable ARC for a single file in a project?)。錯誤地輸入設置很容易; Xcode 5.1中發生的變化僅僅是鏗鏘現在正在喚起你的注意。因此,正如我之前所說,這個從來沒有工作正常;你大概是打算關閉某些文件的ARC,但是你沒有這樣做,因爲構建參數被錯誤地輸入。

+0

我可能在哪裏放置-fno-obj-arc在我的代碼?我的意思是,我所有的代碼都符合Xcode,我看不出任何錯誤。錯誤發生在clang中,如上面的錯誤所示。 – Airtower

+5

號克朗報告你的錯誤。你已經把它放在你的一些文件中,可能是在你的目標的構建階段。 - 這是你的項目。它並沒有從天而降。你寫的。你犯了一個錯誤。修理它。 – matt

+0

@ user1311069最簡單的解決方案可能是使用Xcode 5.0.2 clang,正如我在這裏解釋的:http://stackoverflow.com/a/22467108/341994 – matt

2

我想出了一點從啞光的幫助。
我試圖弄清楚在哪裏改變-fno-obj-arc而沒有人回答這個問題。 我發現這個鏈接是有幫助的...... http://blog.evanmulawski.com/?p=36

一旦你選擇建造階段和編譯源代碼,你可以看一下旁邊的文件在您的項目並改變它們的建造標誌。

感謝您的企圖傢伙。

+0

感謝您發佈您的答案!請注意,您應該在此處發佈答案的重要部分,在此網站上,或者您的帖子風險被刪除[請參閱常見問題,其中提到的答案几乎不超過鏈接。](http:// stackoverflow。 com/faq#deletion)如果您願意,您可能仍然包含該鏈接,但僅作爲「參考」。答案應該獨立,不需要鏈接。 – Taryn

+3

那麼,這個答案也不正確地描述了這種情況。我所提供的不僅僅是「一點幫助」。 OP一直堅持認爲clang本身是錯誤的,並且「-fno-obj-arc」是這個詞的意思。我的回答,再加上反覆的評論,需要讓OP明白,鏗鏘聲僅僅是報告錯誤,這是項目本身。而且,我的評論確實解釋了哪裏可能發現錯誤。 – matt

6

現在更新到xcode會將未知的編譯器標誌作爲硬錯誤而不是警告拋出。發現這是有幫助的:

https://langui.sh/2014/03/10/wunused-command-line-argument-hard-error-in-future-is-a-harsh-mistress/

+15

export ARCHFLAGS =「 - Wno-error = unused-command-line-argument-hard-error-future-future」''' – msc

+0

如果你使用'sudo','sudo ARCHFLAGS = -Wno-錯誤= nused-command-line-argument-hard-error-in-future你的命令在這裏' – Ian

+1

@msc,你的答案應該是*答案。我已經返回到這個網站十幾次以使用該命令。 – Naijaba

0

您需要更改-fno-OBJ-弧-fno-objc弧。 選擇項目 - >目標 - [?我如何禁用ARC在項目中的單個文件]>建立階段..see圖片enter image description here

2
export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future" 
+0

,並記住,如果您使用'sudo',則它不會遷移,所以su以root身份安裝。 – zinking