2015-04-18 124 views
-4

如何從代碼本身中獲取C++源代碼的父目錄(以及更高級別的所有目錄)的地址?即從源創建的程序可以訪問所述目錄而無需指定它們。源文件的父目錄

+0

我應該添加 - 我不使用任何IDE並在命令行上編譯。 – Ylfaue

+2

我可以問你的用例嗎? –

+0

@DimitriSchachmann這是一個非常好的問題,因爲在運行時依賴源目錄的資源通常是一個糟糕的主意。 –

回答

4

您可以使用__FILE__宏來獲取源文件的路徑。然後通過應用字符串操作技術,您可以簡單地獲取父目錄。

更多信息here

1

某些編譯器支持__FILE__ macro,您可以使用它來獲取具有源文件完整路徑的字符文字。

如果可用,您可以從此文字中提取父目錄名稱。


但是,您的用例實際上是什麼情況?

我對您的部署策略可能存在疑問。

如果您依賴源目錄結構,例如加載更多的資源文件,這對於潛在的目標環境來說是不可移植的,只有安裝了可執行文件。您可能會重新考慮您的部署和配置策略。

+0

編譯器是否支持'__FILE__'宏?我認爲這是在C和C++標準。在過去的20年裏,我一直使用所有編譯器。 –