คำตอบ:
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