2016-04-14 22 views
0

C++ uygulamamda hash_map kullanıyorum. 4.1.2 sürümü ile uygulama inşa ettiğimde yapı başarılı oldu. Uygulamayı oluşturmaya çalıştığınızda sürüm ben /usr/include/c++/4.4.6/backward/backward_warning.h baktı ve unordered_map için hash_map değişti öneri dayanarakC++ 4.4.6'da hash_map nasıl eklenir?

/include/c++/4.4.6/backward/backward_warning.h:28:2: error: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.

olarak hatayı atıyor 4.4.6 ile.

Şimdi aşağıdaki hatayı alıyorum,

/include/c++/4.4.6/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.

ben /usr/include/c++/4.4.6/c++0x_warning.h sadece hata mesajını görebilirsiniz.

C++ 'ya oldukça yeni geliyorum. Biri bunun için yardımcı olabilir mi?

+1

"hash_map" ifadesindeki "unordered_map" değerindeki değişikliği geri alabilir ve derleme yapınızın sonunda "-Wo-kullanımdan kaldırılmış" (alıntı yapmadan) ekleyebilirsiniz. Bazı paketler, 4.4.6 –

+1

'da kullanımdan kaldırılmıştır. C++ 0x desteğini -std = C++ 0x veya -std = gnu ++ 0x derleyici seçeneği ile etkinleştirebilirsiniz? (2011'de standartlaştırıldığı için C++ 0x'nin şimdi C++ 11 olarak adlandırıldığını unutmayın). Ya da ilk uyarıyı -wno-kullanımdan kaldırılmış olarak devre dışı bırakabilirsiniz. Veya 5 yaşından daha yeni bir derleyici sürümü kullanabilirsiniz. – immibis

+1

C++ 11'in etkin olmasını gerektiren std :: unordered_map 'kullanmak yerine, 'std :: tr1 :: unordered_map' kullanabilirsiniz (' #include ') – Praetorian

cevap

1

GCC'yi (g++) kullandığınızı varsayarsak, iletinin C++ 11'i kullandığını belirttiği gibi komut satırınıza -std=c++0x eklemeyi deneyin.

+0

Teşekkür ederim. Makefile'de -std = C++ 0x' öğesini nasıl kullanabilirim? – Dany

+0

“CXXFLAGS + = -std = C++ 0x” yi denedim ve 'CCoLGS + = -Wer -Wno-kullanımdan kaldırıldı '' -Wno-kullanımdan kaldırıldı '. Ben CCFLAGS + = -Werror CXXFLAGS + = -std = C++ 0x' gibi bir şey kullandım ama işe yaramadı. – Dany

İlgili konular