通常對於我的OS X版本,我一直在運行10.6的舊版Mac Book Pro上編譯我的應用程序。這確保我支持這個版本的OS X.編譯爲OS X 10.6?
但是由於各種原因,MBP不再是一個長期的選擇,所以我一直在編譯運行10.8的更新的設備。但是,當我這樣做時,即使設置了-mmacosx-version-min = 10.6標誌,我的應用程序也不能在10.6上運行。我設置標誌時發生的錯誤是libSystem.B.dynlib中的「Symbol not found:_wcsdup」
我查了一下這個錯誤,我能找到的唯一建議是直接鏈接到10.6 SDK。但是,當我試圖將10.6 SDK從MPB複製到新機器(因爲10.6上沒有安裝10.6 SDK)時,它無法編譯錯誤,如「error:bits/C++ config.h:No such file or directory 「我認爲這是因爲我」安裝「SDK的方式,儘管其他人已經取得了成功。
有沒有人有解決方案?
你是否正在用'-std = C++ 11'編譯?如果是這樣,這將不會在10.6下工作,因爲它不包含庫文件;你需要使用'-std = gnu ++ 11'來處理10.6到10.8。 – trojanfoe
是的,事實上,我是,這很有趣,我將不得不嘗試用該標誌進行編譯,看看它是否成功。 – latreides
如果您使用過任何C++ 11,您可能需要對代碼進行一些更改。有些可以用'tr1 ::'類代替,但是,當然不是全部。 – trojanfoe