2017-02-03 13 views
5

Günün sorusu "hangi" C++ derleyicisinin mac üzerinde varsayılan olduğunu tahmin ediyorum.mac C++ derleyici bulamıyor <tr1/unordered_map>

xcrun -find c++ yaparsam, /Applications/Xcode.app/etc... içinde olduğunu söylüyor.

tr1/unordered_map için Xcode dizinini aradığımda, orada var.

Kafam karıştı. Neden fatal error: 'tr1/unordered_map' file not found diyor bir yapı hatası alıyorum?

+1

Mac'ler hakkında bilgi sahibi olmayın, ancak 'tr1' bağırır "eski derleyici". – PaulMcKenzie

+0

"işte orada" -> tam olarak nerede? – ForceBru

+1

Derlemek için hangi komutu kullandınız? Yoksa XCode GUI içinde misin? –

cevap

14

Kısa cevap: çağrı -stdlib=libstdc++ ile çınlama ++ ve tr1 başlıkları olacak.

Uzun cevap: Hatanızla nedeni ve C++ 2 takım içerir MacOS/Xcode sen karşı inşa edebilirsiniz iki farklı C++ standart kitaplıkları olmasıdır: Eski bir GNU libstdc++ ve yeni ve modern LLVM libc++ .

MacOS 10.12 Sierra, varsayılan olarak libc++ ve libstdc++ kullanımdan kaldırılmıştır. libstdc++ oldukça eskidir, v4.2.1 ve önceki C++ 11 (dolayısıyla tr1 başlıkları). Bu kodu uzun vadede kullanacaksanız, en azından C++ 11 uyumlu hale getirmek için zaman ayırmaya değer (yani #include <unordered_map>)

İlgili konular