Saya menggunakan gcc 4.8.1 dari http://hpc.sourceforge.net di Mac OSX Mountain Lion. Saya mencoba untuk mengkompilasi program C ++ yang menggunakan to_string
fungsi di <string>
. Saya perlu menggunakan bendera -std=c++11
setiap saat:
g++ -std=c++11 -o testcode1 code1.cpp
Apakah ada cara untuk menyertakan tanda ini secara default?
CXXFLAGS
.Jawaban:
H2CO3 benar, Anda dapat menggunakan makefile dengan set CXXFLAGS dengan -std = c ++ 11 Makefile adalah file teks sederhana dengan instruksi tentang bagaimana mengkompilasi program Anda. Buat file baru bernama Makefile (dengan huruf besar M). Untuk secara otomatis mengkompilasi kode Anda cukup ketikkan perintah make di terminal. Anda mungkin harus menginstal make.
Ini yang sederhana:
Ini mengasumsikan bahwa semua file .cpp berada di direktori yang sama dengan makefile tersebut. Tetapi Anda dapat dengan mudah mengubah makefile Anda untuk mendukung src, include dan build direktori.
Edit : Saya memodifikasi compiler c ++ default, versi g ++ saya tidak up-to-date. Dengan clang ++, makefile ini berfungsi dengan baik.
sumber
Seperti yang disebutkan sebelumnya - dalam kasus proyek,
Makefile
atau sebaliknya, ini adalah masalah konfigurasi proyek, di mana Anda mungkin perlu menentukan tanda lain juga.Tapi bagaimana dengan program satu kali, di mana Anda biasanya hanya menulis
g++ file.cpp && ./a.out
?Yah, saya ingin mengaktifkan beberapa
#pragma
di tingkat sumber, atau mungkin ekstensi default - katakan.cxx
atau.C11
atau apa pun, picu secara default. Namun hingga hari ini, fitur tersebut belum ada.Tetapi, karena Anda mungkin bekerja di lingkungan manual (yaitu shell), Anda dapat memiliki alias di dalam diri Anda
.bashrc
(atau apa pun):atau, untuk G ++ yang lebih baru (dan saat Anda ingin merasakan "C ++ 11 yang sebenarnya")
Anda bahkan dapat membuat alias
g++
sendiri, jika Anda sangat membenci C ++ 03;)sumber
Saya pikir Anda bisa melakukannya dengan menggunakan file spesifikasi.
Di bawah MinGW, Anda dapat menjalankan
gcc -dumpspecs> specs
Dimana dikatakan
Anda mengubahnya menjadi
Dan kemudian letakkan di
/ mingw / lib / gcc / mingw32 / <version> / specs
Saya yakin Anda dapat melakukan hal yang sama tanpa build MinGW. Tidak yakin di mana harus menempatkan file spesifikasi.
Folder tersebut kemungkinan adalah / gcc / lib / atau / gcc /.
sumber
strace -f gcc your-sources-here 2>&1 | grep specs
. Pada satu sistem Debian (lama), ini menghasilkan/usr/lib/gcc/i586-linux-gnu/4.9/specs
. Dibuatspecs
seperti yang dijelaskan dalam jawaban (perlu sudo untuk memindahkannya ke sana di Linux) dan berfungsi seperti pesona! Terima kasih.Jika Anda menggunakan sublime maka kode ini dapat berfungsi jika Anda menambahkannya dalam build sebagai kode untuk membangun sistem. Anda dapat menggunakan tautan ini untuk informasi lebih lanjut.
sumber