-std = gnu ++ 0x를 사용하여 g ++의 fstream 링크 오류
문제
Windows의 TDM -MINGW G ++ 4.4.0에서 -std = gnu ++ 0x 매개 변수로 구축 된 응용 프로그램이 있습니다.
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();
잘 컴파일되고 있지만 연결되지는 않습니다.
해결책
나는 당신이 다음과 같은 코드를 가지고 있다고 생각합니다.
string fname = "foo.txt";
ifstream ifs( fname );
변경해보십시오.
ifstream ifs( fname.c_str() );
사용중인 헤더 파일이 링크하는 라이브러리와 다소 벗어난 경우 발생할 수 있습니다. 이것이 작동하지 않으면 문제를 일으키는 코드를 게시하십시오.
제휴하지 않습니다 StackOverflow