6
จะส่งผ่านนิยามมาโครจากอาร์กิวเมนต์บรรทัดคำสั่ง“ make” (-D) ไปยังซอร์สโค้ด C ได้อย่างไร
ฉันมักจะส่งผ่านคำจำกัดความของมาโครจาก "make command line" ไปยัง "makefile" โดยใช้ตัวเลือก: -Dname = value คำจำกัดความสามารถเข้าถึงได้ภายใน makefile ฉันยังส่งผ่านนิยามมาโครจาก "makefile" ไปยัง "ซอร์สโค้ด" โดยใช้ตัวเลือกคอมไพเลอร์ที่คล้ายกัน: -Dname = value (รองรับในคอมไพเลอร์จำนวนมาก) คำจำกัดความนี้สามารถเข้าถึงได้ในซอร์สโค้ด สิ่งที่ฉันต้องการในตอนนี้คืออนุญาตให้ผู้ใช้ makefile ของฉันสามารถส่งผ่านนิยามมาโครโดยพลการจาก "make.exe commandline" ไปยัง "source code" ได้ทันทีโดยไม่ต้องเปลี่ยนแปลงอะไรใน makefile เพื่อให้ผู้ใช้สามารถพิมพ์: make -f mymakefile.mk -SOMEOPTION var = 5 จากนั้นรหัส main.c โดยตรงสามารถดู var: int main() { int i = …