2009-09-18 16 views
7

Otrzymuję błąd podczas kompilowania programu C++, w którym z linii wywołuje się z "std :: system (SomeString)". Ten program został skompilowany 3 lata temu, ale podczas jego kompilacji otrzymuję komunikat o błędzie, że "system" nie jest członkiem "std". Czy jest coś, co muszę zaimportować, aby użyć std :: system, czy zostało ono porzucone, czy też zostało przeniesione do innego pliku nagłówkowego.C++ std :: system 'system' nie jest członkiem std

Odpowiedz

25

std::system jest (i zawsze był) w <cstdlib>.

Nie jest zdefiniowany przez standard C++, czy standardowe nagłówki obejmują siebie nawzajem, a jeśli tak, które. Jest więc możliwe, że 3 lata temu, na innym kompilatorze lub innej wersji tego samego kompilatora, twój kod działał przez przypadek, ponieważ jeden z nagłówków, które zawierasz, akurat zawierał <cstdlib>. Na kompilatorze/wersji, której teraz używasz, tak nie jest.

2

Sprawdź, czy masz #include <cstdlib> w kodzie.

0

Próbowałem. Działa to w obu kierunkach w vs2008 - "std :: system()" lub "system()". I chcesz dołączyć stdlib.h lub cstdlib

+1

Jakie nowe informacje otrzymasz w porównaniu z zaakceptowanym? –

Powiązane problemy