2016-04-07 43 views
0

Kodum g ++ derleyici sürüm 4.9.0 kullanılarak derlendi. C++ 11 kullanıyorum.g ++ derleyicisi nullptr'yi anlamadı

Ancak, derleyici, nullptr anahtar sözcüğünü anlamıyor. İşte öğrendim budur: kelime nullptr editörü kalın olarak görüntülenir çünkü

  1. Bu, bir yazım hatası değil.
  2. g ++ sürümü, sürüm 4.6.0'dan büyük olduğu için nullptr'u desteklemektedir. Ben auto veya bir satır önceki decltype kullandığınızda o şikayet etmiyor çünkü
  3. derleyici, ben C++ 11 kullanmak istediğiniz anlar (ben -std=c++0x komut satırı argümanı kullanmakla kalmayıp ı -std=gnu++0x).

Başka neyin yanlış olabileceğine dair bir fikrim yok, bu yüzden herhangi bir öneriniz için minnettar olacağım.

Düzenleme:

error: nullptr was not declared in this scope.

Bu g-- versiyonunun çıkışı komut:

g++ (OSE 4.9.2-2 20160202) 4.9.2 

cevap

1

g son sürümlerinde bayrak ++ olan hata mesajı şudur -std=c++11.

+0

Bu bayrağı kullanmayı denedim, ancak derleyicim tarafından tanınmadı. – user2738748

+0

@ user2738748 g ++ 4.9.0 bu bayrağı anlıyor. 'G ++ --version' nedir? – jotik

+0

@jotik, biliyorum. Bu yüzden şaşırdım. – user2738748

0

My code is compiled using the g++ compiler version 4.9.0. I'm using C++11.

Hayır, GCC 4.5 veya üstü ile derlenmiyor. Aksi halde nullptr çalışırdı.

This is the output of the g-- version command:

g++ (OSE 4.9.2-2 20160202) 4.9.2

Bu kesinlikle 4.9.0 değil, OSE nedir?

Kodunuzu nasıl derliyorsunuz? Çünkü GCC'nin farklı bir versiyonunu buluyor gibi görünüyor.

+0

OSE, Açık Kaynak Sürümü anlamına gelir. 4.9.2, ancak 4.9.0'dan daha yeni, bu yüzden hiçbir şey değişmiyor. Makefile'mi buraya kopyalayamıyorum çünkü şirketime ait. Aşağıdaki bayrakları kullanıyorum: -c -g -Wall. Ayrıca kodda direktif olarak kullanılan kendi "bayrak "ımı da geçiyorum. – user2738748

+0

Makefile tarafından kullanılan PATH'yi kontrol edin. Ayrıca, GCC sürümü hakkında size çok fazla bilgi verecek olan '-v' işaretlerini de ekleyebilirsiniz. Komut satırında 'g ++ --version' çalıştırıldığında, makefile'nin bulduğu gibi, g ++ 'nin aynı olması gerekmez. –

+0

-v seçeneğini ekledim ve gcc derleyicisinin şu sürümünü kullandığımı ortaya çıkardım: gcc sürüm 4.4.6 (crosstool-NG 1.12.1). Kodun bir kısmı gcc derleyici ve g ++ derleyicisini kullanarak bölüm kullanılarak derlenir. G ++ derleyicisinin sürümü hakkında bilgi almadım. PATH çevre değişkenini mi kastediyorsunuz? – user2738748