คำตอบ:
CPPFLAGS
ควรจะเป็นสำหรับธงสำหรับC P re P rocessor; CXXFLAGS
ใช้สำหรับแฟล็กสำหรับคอมไพเลอร์ C ++
กฎเริ่มต้นในการทำ (บนเครื่องของฉันในอัตราใด ๆ ) ผ่านCPPFLAGS
ไปทุกอย่างCFLAGS
จะถูกส่งผ่านเมื่อรวบรวมและเชื่อมโยง C เท่านั้นและCXXFLAGS
จะถูกส่งผ่านเมื่อรวบรวมและเชื่อมโยง C ++ เท่านั้น
x
เป็น+
เปิดด้านข้างของมันเพราะC++FLAGS
จะระเบิดขึ้นคอมไพเลอร์ ... ฉันอาจมางานปาร์ตี้ช้า แต่ก็ยังดีกว่าไปถึงงานตรงเวลาผิด
CPPFLAGS
คือไม่ได้สำหรับC P LUs P LUs แต่CXXFLAGS
เป็น
โดยค่าเริ่มต้นCPPFLAGS
จะมอบให้กับตัวประมวลผลล่วงหน้า C ในขณะที่CXXFLAGS
จะมอบให้กับคอมไพเลอร์ C ++
GNU Make คู่มือการใช้งานเป็นทรัพยากรที่ดีสำหรับคำถามเช่นนี้ (ดูตัวแปรโดยปริยาย )
โดยค่าเริ่มต้นพวกเขากำลังตั้งค่าเป็นบางสิ่งบางอย่าง
ในทางปฏิบัติคุณต้องรู้ว่าทุกโครงการทำอะไร แทบไม่มีใครใช้ค่าเริ่มต้นที่สร้างขึ้นมาเพื่อสร้างและหากคุณพึ่งพาเช่น CPPFLAGS หมายถึง "แฟล็กไปยังตัวประมวลผลล่วงหน้า C" คุณจะพบว่าโครงการที่คุณสนใจได้ใช้เพื่อแปล "แฟล็กไปยังคอมไพเลอร์ C ++" แทน. และการตั้งค่าสถานะ CFLAGS จะถูกส่งผ่านไปยัง C ++ คอมไพล์ไลน์หรือไม่? บางครั้ง ไม่เสมอ. อื่น ๆ ฯลฯ
make -p