【发布时间】:2010-11-29 15:21:43
【问题描述】:
我在编译 C++ 程序时收到错误消息,其中的行从“std::system(SomeString)”调用。这个程序是 3 年前编译的,但今天编译时,我收到一个错误,指出“系统”不是“标准”的成员。有什么我必须导入才能使用 std::system 的东西,是被放弃了,还是移到了另一个头文件。
【问题讨论】:
标签: c++ header namespaces include std
我在编译 C++ 程序时收到错误消息,其中的行从“std::system(SomeString)”调用。这个程序是 3 年前编译的,但今天编译时,我收到一个错误,指出“系统”不是“标准”的成员。有什么我必须导入才能使用 std::system 的东西,是被放弃了,还是移到了另一个头文件。
【问题讨论】:
标签: c++ header namespaces include std
std::system 是(并且一直是)<cstdlib>。
C++ 标准没有定义标准头文件是否相互包含,如果包含,则包含哪些。因此,在 3 年前,在不同的编译器或同一编译器的不同版本上,您的代码可能会意外运行,因为您包含的一个标头恰好包含 <cstdlib>。在您现在使用的编译器/版本上,它没有。
【讨论】:
你有这个吗?:
#include <cstdlib>
【讨论】:
确保您的代码中有#include <cstdlib>。
【讨论】:
我试过了。 它在 vs2008 中以两种方式工作——“std::system()”或“system()”。 并且您想包含 stdlib.h 或 cstdlib
【讨论】: