如何更改gcc的預處理器(cc1.exe)輸出格式爲:如何更改GCC預處理器輸出格式?
#line 1 "path/to/file.c"
目前,我得到這個格式:
# 1 "path/to/file.c"
報告還指出here輸出是一個#line
指令,但我得到了不同的輸出格式。是否有我需要使用的參數選項?
如何更改gcc的預處理器(cc1.exe)輸出格式爲:如何更改GCC預處理器輸出格式?
#line 1 "path/to/file.c"
目前,我得到這個格式:
# 1 "path/to/file.c"
報告還指出here輸出是一個#line
指令,但我得到了不同的輸出格式。是否有我需要使用的參數選項?
最簡單的答案,只需編寫一個腳本來處理由gcc預處理器生成的文件,以滿足您的需求。
# 1
與#line 1
,命名爲myscript
。myscript
。gcc
,將它放在本地PATH中。其實,我一直在尋找更簡單的東西,比如添加一個參數選項。 –
按照GCC docs,
源文件名和行號信息由形式
# linenum filename flags
這些被稱爲linemarkers的線輸送。它們根據需要插入到輸出中(但從不在字符串或字符常量內)。它們表示以下行起源於文件文件名在行linenum。
您引用的來源是關於預處理器輸入,而不是輸出。 (GCC也接受上述格式作爲輸入,但它不可互操作。)
'cc1'是C前端,不只是預處理器(我認爲處理集成到前端)。通常預處理器輸出只是直接送到編譯器的其餘部分。你爲什麼需要改變它? –
爲我自己說,我想這樣做,因爲我想預處理輸入到'yacc';但'yacc'只能理解'#line'指令,而不是'#'指令。 –