作爲構建iOS應用程序的Xcode構建階段,我使用makefile
以構建其他內容作爲依賴項的負載(比設置大量我發現複雜的Xcode構建規則)。構建iOS應用程序並運行Mac生成文件時出現「不支持的體系結構」
makefile
中的其中一個步驟現在包括構建一個Mac命令行應用程序,用於處理和打包應用程序的一些資產。
不幸的是,當make
從Xcode運行時,一些環境變量似乎傳遞給它,所以當它試圖從外部makefile
編譯Mac應用程序時,似乎認爲該架構應該是iPhone的Mac。
我makefile
很簡單:
APP_NAME = myAppName
SOURCE = main.m
$(APP_NAME): $(SOURCE)
cc -fobjc-arc -framework Foundation -framework Cocoa -o $(APP_NAME) $(SOURCE)
所以,問題:
我怎麼能強迫鐺,而不是使用,這似乎是在環境中的一個原生架構?
編輯:或者:make
不承擔似乎從Xcode傳遞的環境?
我所看到的:
在構建iOS應用程序,我得到錯誤的負載說:「不支持的架構」爲真正的低級別的頭文件(例如,第一個是cdefs.h)。當我仔細觀察時,很明顯它是在構建Mac工具的main.m時。在命令行上像往常一樣運行make
時它的性能非常好 - 它似乎只有在通過Xcode構建時纔會遇到此問題。
如果確定哪些環境變量是不好的,可以在make中重置這些變量。要查看完整的環境變量列表,您可以(從makefile中的規則中)運行'env | sort'。那麼假設你注意到一個env.var。 'MAKE_ME_AN_IPHONE = true',你可以在你的makefile文件中添加'MAKE_ME_AN_IPHONE =',或者如果你有一個GNU make的全新版本''unexport MAKE_ME_AN_IPHONE''來擺脫這個值。 – MadScientist
謝謝!我的解決方案結果相似,但不完全相同...... –