C ++ 11'i g ++ ile nasıl kullanırım?


21

Şu anda kodumun tamamını gedit'e giriyorum ve programları derlemek için terminal kullanıyorum. Bunu yapmak için yazıyorum:

$ g++ main.cpp -o main
$ ./main

Ve bu çalışıyor. Ancak, C ++ 11 kullanmıyor. C ++ sürümümü nasıl kontrol edebilirim ve ayrıca C ++ 11 kullanarak terminalden derleyebilirim?



Eğer var mı her zaman dahil -std = c ++ 11 veya orada ben otomatik c ++ 11 veya dava complie derlemek o her şey öylesine bir ayar
Fransız Mike

Yanıtlar:


53

Bu -std=c++11bayrak kullanarak yapabilirsiniz . İşte bir örnek:

g++ -std=c++11 -Wall -Wextra -Werror main.cpp -o main

Bu mod, -std=c++11komut satırı işaretiyle veya -std=gnu++11GNU uzantılarını da etkinleştirmek için seçilebilir . ( Kaynak )

Aşağıdaki diğer bayrakların açıklamalarına bakınız. En azından bu hata bayraklarını kullanmanın uzun vadede hayatınızı kolaylaştıracağına derinden inanıyorum. Komut dosyanızın ne yaptığını daha iyi öğrendikten sonra, bir sonuç elde etmek için gerektiğinde uyarıları ihmal edebilirsiniz, ancak standart olmamalıdır. Umarım bu size yardımcı olur. İşte okumaya başlamak için iyi bir yer .

  • -Wall - tüm önemli uyarıları mümkün kılar.
  • -Wextra - diğer önemli uyarıları mümkün kılar.
  • -Werror- tüm uyarıları hatalara çevirerek, herhangi bir uyarı bildirildiğinde derlemelerin başarısız olmasına neden olabilir.

Kaynaklar:

  1. GCC: Seçenek Özeti
  2. GCC: Uyarıları İsteme veya Bastırma Seçenekleri

5
Teşekkürler! Lütfen "-Wall" ve "-Werror" ın bu komutta hangi amaca hizmet ettiğini açıklar mısınız?

1
Cevabımı ekledi.
Videonauth

7
@ dhaneku.b: Neden belgeleri okumuyorsunuz? Bunun için orada.
Monica ile Hafiflik Yarışları

9
@LightnessRacesinOrbit Belgeler, Videonauth'un neden orjinal örnek komut satırında olmasalar da, bunların ne kadar önemli bir etkileşime girdiklerini açıklamak zorunda olduklarını açıklamak zorunda olmadıklarını açıklamayacaktır. -Werror "" -std = c ++ 11 "ile sahip olabilir. (Evet, ikincisinin cevabı "özel bir şey değil", ancak belgeler bunu söylemeyecek ve belgelerde belirtilmeyen bir sürü garip köşe davası var. "İspatın olmaması". t Yokluğun kanıtı ", ve bütün bunlar.)
RM

2
Bu mod, -std=c++11komut satırı -std=gnu++11
işaretiyle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.