的__FILE__
和__LINE__
宏內置到Ç預處理器,並經常用於打印調試輸出與文件名和行號。我需要類似的東西,但只需要路徑末尾的目錄名稱。例如,如果我的代碼位於: /home/davidc/some/path/to/some/code/foo/bar我需要一個只會給我「bar」的宏,如果代碼位於/ home/davidc/some/path/to/some/code/foo/bee然後我需要它給我「蜜蜂」。我怎樣寫一個CPP __DIR__宏,類似於__FILE__
有什麼想法? (順便說一句,這是一個C++應用程序)。
更新:要清楚,我在一個宏後,將在編譯時給我一個包含目錄名稱的字符串,我不想在運行時做任何字符串處理。
「哦,你打了我一分鐘 - 我做的事情幾乎完全一樣。如果最後一個目錄中有空格,它就不起作用,否則它是一個完美的解決方案。相信我 - 我以前在Makefiles中看到過*更糟糕的怪物。 – 2009-10-20 01:40:41
@Adam:我只需要做一些_fixups_來解決版本號從今晚的零開始。從07.64到08.01導致我們有很多不必要的悲傷。 – 2009-10-20 02:08:21
我使用CMake,所以我應該能夠做到這一點。謝謝! – 2009-10-20 23:07:35