C ++ std :: system 'system' не является членом std - PullRequest
7 голосов
/ 19 сентября 2009

Я получаю сообщение об ошибке при компиляции программы на C ++, в которой из строк выполняется вызов из "std :: system (SomeString)". Эта программа была скомпилирована 3 года назад, но при компиляции сегодня я получаю сообщение об ошибке, в котором говорится, что «система» не является членом «стандартного». Есть ли что-то, что я должен импортировать, чтобы использовать std :: system, было ли оно заброшено или перенесено в другой заголовочный файл.

Ответы [ 4 ]

25 голосов
/ 19 сентября 2009

std::system есть (и всегда было) в <cstdlib>.

Стандарт C ++ не определяет, включают ли стандартные заголовки друг друга, и если да, то какие. Поэтому возможно, что 3 года назад на другом компиляторе или другой версии того же компилятора ваш код работал случайно, потому что один из заголовков, который вы включили, просто включил <cstdlib>. На используемом сейчас компиляторе / версии это не так.

7 голосов
/ 19 сентября 2009

У вас есть это?:

#include <cstdlib>
2 голосов
/ 19 сентября 2009

Убедитесь, что в вашем коде #include <cstdlib>.

0 голосов
/ 02 апреля 2012

Я пытался. В vs2008 это работает в обоих направлениях - "std :: system ()" или "system ()". И вы хотите включить либо stdlib.h, либо cstdlib

...