1
我想編譯源代碼,但我需要將extern「C」添加到其他包中的許多頭文件中。所以我必須同時保持這些完好無損。 我想知道的是,我可以添加如何在編譯時將源代碼添加到行,但保持不變
#ifdef __cplusplus
extern "C" {
#endif
在頁眉和
#ifdef __cplusplus
}
#endif
頁腳爲每頭我感興趣的?
我能想到的是使用$awk
將這些文件傳遞給編譯器,但我無法想出詳細信息。
是否有任何已知的示例或我可以挖掘的內容?
非常感謝。
我不得不使用'對於f在include/*;做的awk「BEGIN {打印 「的#ifdef __cplusplus \ nextern \」 C \」 { \ n#endif \ n「} {print} END {print」#ifdef __cplusplus \ n} \ n#endif「}'」include/$(basename $ f)「>」include_wrappers/$(basename $ f)「; done',因爲我認爲這個問題可能出在我的代碼沒有直接包含的頭文件中,而是由我使用的頭文件帶入。所以我添加頁眉和頁腳到所有的頭文件,但它仍然不能編譯。我想我必須考慮一下,如果g ++與extern「C」真的給出了與gcc相同的環境。謝謝你。 – WJin
@WJin在我看來,你已經生成了具有相同名稱的文件。你怎麼能確定新文件包含而不是舊文件? –
編譯器以相同的順序搜索include目錄,並在-I選項中列出目錄。 – WJin