4

因此,最近有人向我的项目提交了一些错误修复,他们还包括以下内容:

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

问题是我在 MinGW 中使用 Code::Blocks,所以当我尝试编译时,它说 realpath() 根本没有定义。提交者没有提供任何替代方案,当我尝试在没有 MSVC 的情况下搜索 realpath 时,我得到的只是将 realpathMSVC 一起使用。有没有人有我可以与 MinGW 一起使用的东西?

4

1 回答 1

2

realpath()是一个 POSIX 函数,这就是 MinGW 找不到它的原因。您可以做的是使用 boost::filesystem 库作为跨平台的替代方法来查找绝对路径。boost::filesystem 的教程如下:

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

boost::filesystem 库已经存在一些问题。下面附上了一个可能有用的链接:

如何使用 boost::filesystem “规范化”路径名?

于 2017-07-16T04:38:38.643 回答