【问题标题】:Cross-platform alternative to this realpath definition?这个真实路径定义的跨平台替代方案?
【发布时间】:2017-07-16 04:08:21
【问题描述】:

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

#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 时,我得到的只是使用 realpath with MSVC。有没有人有我可以用 MinGW 代替的东西?

【问题讨论】:

    标签: c++ visual-c++ mingw realpath


    【解决方案1】:

    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 库的问题。 下面附上一个可能有用的链接:

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

    【讨论】:

    • 谢谢!我试试看。
    • @KelvinShadewing 如果你觉得这个答案有用,你能接受吗?
    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2017-12-19
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多