c++ - 在不包含 stdlib.h 的情况下使用 stdlib 函数

标签 c++ compilation std

我正在编译大量使用 srand() 和 rand() 的文件,但不包括 stdlib.h。 我知道这是不好的做法,但是由于我无法更改正在编译的文件,因此无法在每个文件中插入必要的 include 语句。

如何配置我的编译器以允许隐式包含 stdlib 函数?另外,有没有办法以同样的方式隐式使用 std 命名空间?

编辑:使用 g++

编辑:看起来这就是答案(至少是第一部分)。要像包含 stdlib.h 一样编译文件,请使用选项 -include stdlib.h

最佳答案

正如您现在提到的,您正在使用 GCC,您可以只使用 -include旗帜。其他编译器可能有等效项。


如果您的编译器没有这样的标志,您可以使用以下不完全严肃的解决方案,它应该仍然有效:

nice.cc

#include <stdlib.h>
#include "naughty.cc"

(其中 naughty.cc 是原始源文件)。

当然,使用合适的构建系统,您可以自动生成漂亮的包装文件。

关于c++ - 在不包含 stdlib.h 的情况下使用 stdlib 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575705/

相关文章:

c++ - 使用模板时出现奇怪的 "invalid initialization of non-const reference"

c++ - 如果 x 是指针,&x 与 x 有何不同?

python - 从 python 代码编译 DLL

c# - 加快 MSBuild 构建过程

c++ - std::less: error C2661: 'std::less<_Ty>::less': 没有重载函数需要 2 个参数

c++ - sfinae 关于在类主体外部定义的成员函数

c++ - 如何解决错误 'std::out_of_range' what() : _M_range_check , vector will accept values until told to break

c++ - 我应该使用指向 std::string 的指针吗

c++ - 将代码编译为单个自动合并文件,以允许编译器更好地优化代码

c++ - std::unique_ptr 析构构造函数顺序