我想在OS X 10.9上編譯一些舊的第三方軟件。我設法通過調整Makefile中的設置來解決大多數編譯問題,最初編寫的代碼爲gcc大概在2005年左右。但是,我目前不知道如何克服C++源文件的這個錯誤:在OS X上找不到'ext/slist'文件10.9
/utility.h:42:10: fatal error: 'ext/slist' file not found
據我所知,ext/slist
屬於某個版本的STL。對於Apple版本的Clang/LLVM(對於OS X 10.9爲5.0),該版本是否已被取代或是否需要以任何特殊方式激活?
如果可能的話,我寧願用預裝的工具編譯這個軟件,而不會通過安裝gcc via MacPorts這樣的步驟。
順便說一句,這些警告也堅持:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_set:202:2: warning: Use of the header is deprecated. Migrate to [-W#warnings] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_map:209:2: warning: Use of the header is deprecated. Migrate to [-W#warnings]
謝謝,'-stdlib = libstdC++'解決了這個問題。我現在正在收到其他錯誤,例如:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/memory: 222:7:注意:候選函數不可行:沒有已知的從'tree *'(aka'tree_node <> *')轉換爲'std :: auto_ptr ...「的結果。是否必須要調整包含路徑以反映較舊的庫,以及 –
Drux
不,這個錯誤是指較舊的庫。該錯誤似乎是新編譯器和舊編譯器之間的差異的結果 – bames53
因此,看起來好像較新的,[嚴格](http://stackoverflow.com/questions/12779630/conversion-to-const-y-not-applicable-for-r-on-clang)編譯器不再接受舊庫中的頭文件,也無需安裝(MacPorts | brew)&gcc我卡住了...... – Drux