Câu trả lời:
CPPFLAGS
được cho là cờ cho người cai trị C P re P ; CXXFLAGS
là 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 CPPFLAGS
sang mọi thứ, CFLAGS
chỉ được thông qua khi biên dịch và liên kết C, và CXXFLAGS
chỉ được thông qua khi biên dịch và liên kết C ++.
x
này được +
bật lên vì C++FLAGS
nó 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ờ.
CPPFLAGS
là KHÔNG cho C P lus P lus nhưng CXXFLAGS
là.
Theo mặc định, CPPFLAGS
sẽ được trao cho bộ tiền xử lý C, trong khi CXXFLAGS
sẽ đượ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