2013-02-25 107 views
0

是否有宏,我可以#ifdef檢查librt是否已鏈接,即通過-lrt與gcc?檢查librt鏈接

+1

你能解釋爲什麼你需要那個嗎? (預處理器通常沒有關於鏈接器的東西,它甚至在考慮連接之前運行。) – Mat 2013-02-25 06:20:30

+0

我正在編寫一個我通常使用的函數的文件夾,不想一直寫。定時文件中的一個功能取決於'librt',所以如果包含該文件而不鏈接到'librt',即使該函數未被調用,也會導致編譯失敗。 – 2013-02-25 07:21:03

+1

這是你在編譯系統中需要處理的東西,而不是源代碼。如果有人只編譯(並且還沒有鏈接)該文件,那麼根本就沒有鏈接器標誌,這不會成爲問題。 – Mat 2013-02-25 07:36:10

回答

1

不,gcc沒有這樣的宏(我傾倒了預處理器宏來檢查)。在帶有Microsoft編譯器的Windows上,您可以使用_VC_NODEFAULTLIB宏來檢測沒有libc引用的版本。

+0

謝謝您的檢查。你能否展示你如何傾銷預處理器宏,以便我(和其他人)將來可以做到這一點? – 2013-02-25 07:22:14

+0

看看SO上的這個答案:http://stackoverflow.com/a/2224357/848177 – 2013-02-25 08:38:14