Domanda

Sono hanno un'applicazione creata con la -std = gnu ++ 0x parametro nel TDM-MinGW g ++ 4.4.0 su Windows.

Si sta usando un oggetto ofstream e quando costruire, dà il seguente errore di collegamento:

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)'

Si costruisce correttamente quando si utilizza lo standard di default più vecchio.

Questo è l'unico errore e cercando di collegare con ++ -lstdc non aiuta. qualcuno ha sperimentato prima? Posso ottenere qualche suggerimento?

Modifica: Sto creando un oggetto ofstream in questo modo:

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

Si è sempre compilato bene, ma non sempre legata.

È stato utile?

Soluzione

Direi che hai qualche codice come questo:

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

Prova a cambiarlo con:

ifstream ifs( fname.c_str() );

Questo potrebbe accadere se i file di intestazione che si sta utilizzando sono un po 'fuori di colpo con le librerie che si sta facendo riferimento. E se questo non funziona, inserire il codice che causa il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top