2017-07-16 96 views
1

所以,最近有人提出了一些bug修復到我的項目,他們也包含這樣的:該實時路徑定義的跨平臺替代方案?

#ifdef _MSC_VER 
    #ifndef PATH_MAX 
    #define PATH_MAX _MAX_PATH 
    #endif 
    #define realpath(N,R) _fullpath((R),(N),_MAX_PATH) 
#endif 

問題是我使用的代碼::使用MinGW塊,所以當我嘗試編譯,它說realpath()根本沒有定義。提交者沒有提供任何替代方案,並且當我嘗試搜索沒有MSVC的實時路徑時,我所得到的只是使用實際路徑 MSVC。有沒有人有我可以用MinGW代替的東西?

回答

1

realpath()是一個POSIX函數,這就是爲什麼它不被MinGW發現。你可以做的是使用boost :: filesystem庫作爲找到絕對路徑的跨平臺替代方案。一種升壓::文件系統教程低於可供選擇:

http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v2/doc/index.htm#tutorial

目前已經上了boost ::文件系統庫中的一些問題。 鏈接到一個可能有用已附加如下:

How do I "normalize" a pathname using boost::filesystem?

+0

謝謝!我會試試這個。 –

+0

@KelvinShadewing如果你發現這個答案有用,你能接受嗎? –