[Ios] XCode 4.1致命錯誤:自編譯預編譯頭之後修改了stdlib


Answers

首先通過Product - > Clean菜單嘗試一個乾淨的版本(從XCode 4.6.2開始)。

如果仍然無法使用,請打開Organizer(從菜單中選擇Window-> Organizer)。 組織者打開後,從窗口頂部的工具欄中選擇項目。 左邊是項目列表,選擇你遇到問題的項目。

詳細信息面板(列表右側)將顯示項目名稱,位置和狀態。 下面的行顯示派生數據的位置。 點擊最右邊的刪除...按鈕。 將出現一個對話框,點擊刪除。

您也可以手動刪除派生數據:

~/Library/Developer/Xcode/DerivedData/{project name + gobly-gook}

該目錄包含項目的內置產品和索引。 可以刪除它,因為它只包含由Xcode生成的項目。 Xcode將在下次打開項目時重新生成所有內容。

Question

建立一個iPhone應用程序,使用:

XCode 4.1

基礎SDK iOS 4.3

Apple LLVM編譯器2.1

我已經開始出現以下錯誤:

致命錯誤:文件'/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/../lib/clang/2.1/include/stdint.h'自編譯預編譯頭文件後已被修改

我已經嘗試重新安裝XCode和OS X - 沒有運氣。 任何人都知道這是什麼原因?




我想我會為Cryptognome的答案添加一個單獨的答案,而不是一個評論,因為當問題來自運行xcodebuild時,它實際上是一個不同的解決方案。 像Cryptognome一樣,我錯誤地使用了命令行工具xcodebuild 。 作為手動進入/var子文件夾的替代方案,我發現我可以為共享PCH設置自己的緩存,您可以通過設置環境變量SHARED_PRECOMPS_DIR ,例如,如下所示

xcodebuild -target Foo -configuration Release SHARED_PRECOMPS_DIR=/tmp/foo/SharedPCH

這樣,我從來沒有在自動構建中得到錯誤。

注意在上面的命令中,我通常還會將OBJROOTSYMROOT env var設置為/ tmp中。 最後,我清理了一些東西。




通過簡單地選擇產品>清潔,然後從Xcode菜單欄中選擇產品>生成,我就能夠以更簡單的方式修復它。




我在跑步時在科爾多瓦發生了這個錯誤: cordova run ios

fatal error: file '/Users/.../cordova/platforms/ios/CordovaLib/CordovaLib_Prefix.pch' has been modified since the precompiled header
  '/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/CordovaLib_Prefix-bfgesbulnxtdepfwgniffeysypgv/CordovaLib_Prefix.pch.pch' was built
note: please rebuild precompiled header
  '/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/CordovaLib_Prefix-bfgesbulnxtdepfwgniffeysypgv/CordovaLib_Prefix.pch.pch'
1 error generated.

** BUILD FAILED **    

The following build commands failed:
    CompileC build/CordovaLib.build/Debug-iphoneos/CordovaLib.build/Objects-normal/armv7/NSDictionary+Extensions.o Classes/NSDictionary+Extensions.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/CordovaLib.build/Debug-iphoneos/CordovaLib.build/Objects-normal/armv7/CDVInvokedUrlCommand.o Classes/CDVInvokedUrlCommand.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler

我試著乾淨,但不起作用,最後我刪除了文件夾'/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode',並工作! 這個提示,可能會幫助別人




解:

1)製品 - >清潔

2)製品 - >構建

錯誤類型:

一種Build錯誤

其中一個原因:

人們可能已經改變了框架文件。 這有時會發生在對另一個框架所依賴的框架進行更改時發生。 預編譯頭緩存不同步,Xcode無法編譯給定的項目。

其中一種情況:

人們可能選擇了跳轉到定義,並在選擇框架控制後做了一些更改。




只需清理(命令+ shift + K)和重建,我就能擺脫這個錯誤。




Clean方式不適合我,最終我通過重新安裝XCode解決了這個問題。




我嘗試了所有,但沒有用。 最後我刪除了Xcode並重新安裝。 現在它工作正常..

Xcode-> delete->再次安裝

它可能有助於某個人......




存檔時刪除DerivedData文件夾對我無效。

我必須查看構建設置 - 構建位置 - 預編譯頭標緩存路徑並刪除該文件夾。

對我來說那是:

/var/folders/_w/t0mj70hd1439tqgxff7_mtt00000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders



通過iOS模擬器>重置內容和設置...刪除模擬器的內容,然後點擊休息。 這將刪除標題和資源的所有現有預編譯實例。 這對我有效




xcodebuild命令行工具有時會因此錯誤而失敗。 當我將svn工作區同步到較早的版本時,發生在我身上。 xcodebuild工具將其預編譯頭文件保存在提到的文件夾Ants中:

/var/folders/... scrambled eggs .../-Caches-/com.apple.Xcode.503/SharedPrecompiledHeaders/

你必須查看build命令本身以查看實際的文件夾名稱(-include / var / ...),但是如果你正在為不同的體系結構構建(例如arm6,arm7,模擬器),可能會使用幾個。如果您在命令行構建中遇到此問題,只需刪除/var/.../SharedPrecompiledHeaders中的所有內容。