Câu trả lời:
CPPFLAGSđược cho là cờ cho người cai trị C P re P ; CXXFLAGSlà cờ cho trình biên dịch C ++.
Các quy tắc mặc định trong make (trên máy của tôi, ở mọi mức độ) chuyển CPPFLAGSsang mọi thứ, CFLAGSchỉ được thông qua khi biên dịch và liên kết C, và CXXFLAGSchỉ được thông qua khi biên dịch và liên kết C ++.
xnày được +bật lên vì C++FLAGSnó sẽ làm nổ tung trình biên dịch. ... Tôi có thể đến bữa tiệc muộn, nhưng vẫn tốt hơn là đến đúng giờ.
CPPFLAGSlà KHÔNG cho C P lus P lus nhưng CXXFLAGS là.
Theo mặc định, CPPFLAGSsẽ được trao cho bộ tiền xử lý C, trong khi CXXFLAGSsẽ được trao cho trình biên dịch C ++.
Các GNU Make tay là một nguồn lực tốt cho các câu hỏi như thế này (xem biến Implicit ).
Theo mặc định, chúng được đặt thành một cái gì đó.
Trong thực tế, bạn cần phải biết những gì mỗi dự án làm. Hầu như không ai sử dụng các giá trị mặc định được tạo sẵn đó và ví dụ, nếu bạn dựa vào CPPFLAGS có nghĩa là "cờ cho bộ tiền xử lý C", bạn sẽ thấy rằng dự án mà bạn quan tâm đã sử dụng nó có nghĩa là "cờ cho trình biên dịch C ++" thay thế. Và cờ CFLAGS có được chuyển sang các dòng biên dịch C ++ không? Đôi khi. Không phải lúc nào. Vv, v.v.
make -p