亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是“非法指令:4”錯誤?為什么“ -mmacosx-version-min = 10.x”

什么是“非法指令:4”錯誤?為什么“ -mmacosx-version-min = 10.x”

繁華開滿天機 2019-11-15 21:10:35
我得到Illegal Instruction: 4在Mac OS X 10.8.2(“山獅”)與GCC 4.7.2編譯的二進制文件,當這些二進制文件在Mac OS X 10.7.x(“獅子”)和早期版本的運行錯誤。這些二進制文件在Mac OS X 10.8.x下可以正常工作。我添加-mmacosx-version-min=10.5了編譯標志,無論該問題是什么,這似乎都有助于解決10.5.x,10.6.x和10.7.x客戶端的問題。哪個引起了我的問題:有什么Illegal Instruction: 4錯誤?為什么要-mmacosx-version-min=10.x在10.x更多的客戶上解決此特定錯誤?我想將此修復程序應用于我的makefile,但想知道在執行觸發器之前它在做什么。(我將擁有更大的二進制文件嗎?我還會有64位二進制文件嗎?我應該了解這種方法的陷阱嗎?意外的副作用?等等。)
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

從蘋果開發者論壇(需要帳戶):


“編譯器和鏈接器能夠使用某些功能,并執行在較舊的OS版本上不起作用的優化。-mmacosx-version-min告訴工具您需要使用哪個OS版本,因此這些工具可以禁用那些不能在這些OS版本上運行的優化。如果需要在較早的OS版本上運行,則必須使用此標志。


“不利的一面-mmacosx-version-min是,在較新的OS版本上,該應用的性能可能會更差,如果不需要向后兼容,則性能可能會下降。在大多數情況下,差異很小?!?/p>


查看完整回答
反對 回復 2019-11-15
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

“非法指令”消息只是告訴您二進制文件包含指令,您嘗試在其下運行的操作系統版本不理解。我不能給您確切的含義,4但是我希望這是Apple內部的。


否則看看這些...它們有些舊,但是可能告訴您您需要知道什么


查看完整回答
反對 回復 2019-11-15
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

考慮到這一點,我有意識地將這個答案寫在了一個老問題上,因為其他答案并沒有幫助我。


我Illegal Instruction: 4在編譯二進制文件的同一系統上運行二進制文件,因此-mmacosx-version-min沒有幫助。


我在Mac OS X 10.11的代碼塊16中使用了gcc。


但是,關閉所有代碼塊的編譯器標志以進行優化是可行的。因此,請查看所有設置了代碼塊的標志(右鍵單擊Project->“ Build Properties”),然后關閉所有您確定不需要-s的-O標志,尤其是用于優化的標志。對我來說就做到了。


查看完整回答
反對 回復 2019-11-15
  • 3 回答
  • 0 關注
  • 966 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號