說我有一個翻譯文件TARGET
定義爲FEATURE
定義:保持include語句在預處理輸出
// File options.h
#ifdef TARGET_A
#define FEATURE_X
#endif
#ifdef TARGET_B
#define FEATURE_Y
#endif
struct foo {
int a;
int b;
};
而且我有一堆文件ifdef
「與FEATURE
ED定義:
// File foo.c
#include "options.h"
#ifdef FEATURE_X
int x;
#endif
#ifdef FEATURE_Y
int y;
#endif
那麼,我如何預處理foo.c
,以便它將處理include語句,但將它保存在文件中?
喜歡的東西:
$ some-pre-process-tool -DTARGET_A -I. -o foo.pp.c foo.c
$ cat foo.pp.c
// File foo.c
#include "options.h"
int x;
$
你可以可能會使用[coan](http://coan2.sourceforge.net/)獲得您所需的內容(儘管可能不那麼容易)。祝你好運。 – rici
我看到,當谷歌搜索解決方案 - 但它看起來像一個太大的努力,爲此目的。你使用/瞭解它,對這種事情有好處嗎?我問,因爲我最終解決的解決方案是刪除隨機空白,這是討厭的... – Allan
我已經使用了科恩,它已經解決了我設置要解決的問題。我不知道解決問題有多容易:我認爲你需要兩個步驟,首先確定該特徵定義了目標選擇的結果(只要您有一種通過名稱識別相關特徵宏的方法),然後使用coan選擇性地僅處理這些宏。 – rici