代码之家  ›  专栏  ›  技术社区  ›  Sahas

g++中存在-std=gnu++0x的fstream链接错误

  •  3
  • Sahas  · 技术社区  · 17 年前

    它正在使用ofstream对象,当我构建时,它会给出以下链接错误:

    c:\opt\Noddler/main_func.cpp:43: undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(std::string const&, std::_Ios_Openmode)'
    

    当使用默认的旧标准时,它会正确构建。

    这是唯一的错误,尝试与-lstdc++链接没有帮助。以前有人经历过吗?我能得到一些建议吗?

    编辑: 我正在创建一个流对象,如下所示:

    std::string filename = string("noddler\\") + callobj.get_ucid() + "_" + callobj.gram_counter() + ".grxml";
    ofstream grxml_file(string("C:\\CWorld\\Server\\Grammar\\") + filename);
    ...
    grxml_file.close();
    

    1 回复  |  直到 16 年前
        1
  •  3
  •   anon anon    17 年前

    我猜您可能有这样的代码:

    string fname = "foo.txt";
    ifstream ifs( fname );
    

    尝试将其更改为:

    ifstream ifs( fname.c_str() );
    

    如果您使用的头文件与您链接到的库有些不协调,则可能会发生这种情况。如果这不起作用,发布导致问题的代码。