程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-Linux下C語言項目,怎麼基於不同宏值定義組合,自動化編譯

c語言-Linux下C語言項目,怎麼基於不同宏值定義組合,自動化編譯

編輯:編程綜合問答
Linux下C語言項目,怎麼基於不同宏值定義組合,自動化編譯

一個Linux下的C語言項目,希望通過Macro實現每個功能模塊都能自由打開/關閉,例如:
#define FEATURE_A 1 // 如果想關閉Feature_A,請定義為0
#define FEATURE_B 1 // 如果想關閉Feature_B,請定義為0
#define FEATURE_C 1 // 如果想關閉Feature_C,請定義為0
默認情況下,Feature A/B/C都是打開的,也就是都定義為1。但是我希望保證任意組合(2^3=8種組合)下,代碼都能編譯通過,並且這個工作可以通過自動化腳本來實現,而不是手工的一次次修改宏定義的值。
我能想到的一個思路是:Linux下命令行編譯時,我可以添加編譯選項"-DFEATURE_A=1 -DFEATURE_B=1 -DFEATURE_C=1",那麼是否可以在編譯腳本裡實現類似如下偽碼:
define $i, $j, $k;
for ($i=0; $i<1; $i++)
for ($j=0; $j<1; $j++)
for ($k=0; $k<1; $k++)
make -DFEATURE_A=$i -DFEATURE_B=$j -DFEATURE_C=$k
因為自己對腳本和gcc編譯選項不熟悉,不知道是否有成熟的便捷實現方法,或者我自己的上述思路是否可行。特此求教,謝謝!

最佳回答:


謝謝這麼快的回復!
請問以Bash為例,怎麼做到“每次根據不同的變量,直接傳到make命令參數中”?真的就像我提問裡面給的偽碼那樣就行?

mudfishonthenet
oyljerry
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved