【问题标题】:error C2039: 'memchr' : is not a member of '`global namespace''错误 C2039:“memchr”:不是“全局命名空间”的成员
【发布时间】:2012-09-14 15:13:21
【问题描述】:

自从我在标准 头文件中无缘无故地收到此错误以来已经有一段时间了。谷歌搜索带来了许多答案,但没有一个有效。

【问题讨论】:

    标签: c++


    【解决方案1】:

    好的,我自己修好了。这是一个愚蠢的错误!我在一个库项目中有一个名为“String.h”的文件,该文件被 标头拾取。可能是因为我已将 的路径添加为我的测试项目中的附加包含目录(我收到此错误。)希望这对某人有所帮助。

    【讨论】:

    • 伙计,我只花了一个小时才弄清楚。谢谢,和这个问题一样。
    • thx 伙计,为我节省了很多时间和精力!为问题和答案投票。
    • 是的,它有帮助!我刚刚编写了自己的字符串实现并将其放入 String.h 文件中。过了一段时间,我决定用谷歌搜索错误!谢谢!微软的耻辱......
    • 微软再次让我们所有人受益。
    • 这是一个疯狂的错误,我很高兴看到你的帖子,非常感谢!
    【解决方案2】:

    您的编译器可能(正确地)将 memchr 函数放置在 C++ std 命名空间中。尝试使用 std:: 作为 memchr 调用的前缀,如果失败,请发布导致问题的代码。

    【讨论】:

    • 感谢您的帮助,但这是另一回事。
    【解决方案3】:

    当您想避免此类错误时,预处理器定义非常方便。

    //whatev.h
    #ifndef WHATEV
    #define WHATEV
    
    // your code here
    
    #endif
    

    【讨论】:

    • 更喜欢使用#pragma once,因为我专门使用 MS 编译器。但无论如何,这不是我收到错误的原因。
    猜你喜欢
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多