Jawaban:
CPPFLAGS
seharusnya untuk bendera untuk penilai C P re P ; CXXFLAGS
adalah untuk flag untuk kompiler C ++.
Aturan default dalam make (pada mesin saya, bagaimanapun) melewati CPPFLAGS
semua saja, CFLAGS
hanya diteruskan ketika mengkompilasi dan menghubungkan C, dan CXXFLAGS
hanya diteruskan ketika mengkompilasi dan menghubungkan C ++.
x
merupakan +
dihidupkan sisi itu karena C++FLAGS
akan meledakkan compiler. ... Aku mungkin terlambat datang ke pesta, tapi itu masih lebih baik daripada tiba tepat waktu ke pesta yang salah.
CPPFLAGS
adalah TIDAK untuk C P lus P lus tapi CXXFLAGS
adalah.
Secara default, CPPFLAGS
akan diberikan ke preproses C, sementara CXXFLAGS
akan diberikan ke kompiler C ++.
Manual Pembuatan GNU adalah sumber yang bagus untuk pertanyaan seperti ini (lihat Variabel Implisit ).
Secara default, mereka diatur ke sesuatu.
Dalam praktiknya, Anda perlu tahu apa yang dilakukan setiap proyek. Hampir tidak ada yang menggunakan default yang dibangun pada make, dan jika Anda mengandalkan, misalnya, CPPFLAGS yang berarti "flags to the preprocessor C" Anda akan menemukan bahwa proyek yang Anda pedulikan telah menggunakannya untuk berarti "flags to the C ++ compiler" sebagai gantinya. Dan apakah flag CFLAGS diteruskan ke jalur kompilasi C ++? Terkadang. Tidak selalu. Dll, dll. Dll.
make -p