2009-09-18 32 views
7

Ricevo un errore durante la compilazione di un programma C++ in cui le linee effettuano una chiamata da "std :: system (SomeString)". Questo programma è stato compilato 3 anni fa, ma quando lo compilo oggi, ricevo un errore che indica che "system" non è un membro di "std". C'è qualcosa che devo importare per usare std :: system, è stato abbandonato o spostato su un altro file di intestazione.C++ std :: system 'system' non è un membro di std

risposta

25

std::system è (ed è sempre stato) in <cstdlib>.

Non è definito dallo standard C++ se le intestazioni standard sono reciproche e, in tal caso, quali. Quindi è possibile che 3 anni fa, su un compilatore diverso o una versione diversa dello stesso compilatore, il tuo codice funzionasse per sbaglio, perché una delle intestazioni che includi includeva semplicemente <cstdlib>. Sul compilatore/versione che stai usando ora, non è così.

2

Accertarsi che siano presenti #include <cstdlib> nel codice.

0

Ho provato. Funziona in entrambi i modi in vs2008 - "std :: system()" o "system()". E vuoi includere stdlib.h o cstdlib

+1

Quali nuove informazioni rispondi in confronto a quella accettata? –

Problemi correlati