2011-06-06 145 views
3

當我試圖測試與默認的編譯器設置,LLVM GCC 4.2,它給我「內部編譯器錯誤:總線錯誤」設備我的應用程序,但它工作正常與GCC 4.2LLVM編譯器2.0內部編譯器錯誤:總線錯誤與LLVM GCC 4.2編譯

這個錯誤可能是什麼原因造成的?是否可以使用GCC 4.2分發你的應用程序?

+0

有什麼理由不使用鐺? – 2011-06-06 09:33:09

+0

@Let_Me_Be - 對不起,對這個問題不瞭解clang。 – itsaboutcode 2011-06-06 09:35:40

+0

@itsaboutcode好吧,clang是一個編譯器前端,它使用LLVM作爲後端。這是一個更清潔的組合,然後LLVM GCC。嘗試叮噹,看看問題是否仍然存在。 – 2011-06-06 09:38:55

回答

0

「總線錯誤」通常意味着您的應用程序正試圖執行未對齊的內存訪問,默認情況下這是不允許的。

您可以嘗試要麼告訴gcc只產生對齊內存訪問或設置對齊的內存訪問在操作系統內核(不知道是否有可能在iOS版)處理:

echo 2 > /proc/cpu/alignment 
+0

這在Linux中可行,但在OSX/iOS中不可行。這些系統上沒有'/ proc'樹。 'gcc'不再是iOS上的默認編譯器,而是'llvm'。 – Cyrille 2012-10-06 08:06:31