在cstlib中将#include_next替换为#include是否安全
Is it safe to replace #include_next by #include in cstlib
我最近在交叉编译qt 5.8项目时遇到了cstdlib中#include_next <stdlib.h>
指令的问题。
当我试图用linaro-aarch64-gcc_7.2.1-r0工具链构建我的项目时,我遇到了stdlib.h : not such file or directory
问题。我通过用#include
替换#include_next
的出现来解决它。它起了作用,但我确信这不是解决这个问题的好方法。我发现在gcc-base.conf
中用-I
替换-isystem
选项可以解决这个问题,但对我来说不起作用
所以我的问题是:在cstdlib中用#include
替换#include_next
指令安全吗?
提前感谢
好吧,编辑标准头不是程序员应该做的事情。你会损害代码的可移植性:如果你把代码移到另一台机器上(有相同的cstdlib
问题),它将不再编译。首先要弄清楚问题的原因是什么,这是值得的。
但是,如果您想在特定的机器上运行代码,它可能是一个临时修复程序。我不知道为什么cstdlib
在您的情况下使用特定于gcc的预处理器指令。
相关文章:
- 在cstlib中将#include_next替换为#include是否安全
- 使用 #include 将大量重复代码放入单独的文件中是否可以和/或正常?
- 对于动态模板中的include,是否有一种干净的方法
- __has_include() 和后续 #include 之间是否存在争用条件
- 注意:'std::thread'在标题""中定义<thread>;您是否忘记了"#include<thread>"?
- #include 包含的头文件已包含的头文件是否常见?
- 是否可以将一个命名空间类 #include 到另一个命名空间中
- 是否可以将 SDL .lib、.dll 和头文件放在某个地方,以便我可以在 Visual Studio 2017 RC 项目中键入 #include < SDL2.h>?
- 如果目标文件已经具有标头保护,我们是否应该用 #ifndef 来保护 #include
- 是否可以让gnucpp保留include宏
- 当我<exception>似乎可以使用 std::exception 时,即使它不包括在内,是否有必要 #include?
- C++标准是否需要"#include < math.h>"来定义""中的"abs"重载<cmath>?
- 执行pclint时,include文件的顺序是否重要
- 使用继承时,是否必须"#include"子类父类的头文件。 C++
- 我是否应该对C++包含目录进行符号链接,以便它也出现在 /usr/include 下
- C++:如果我包含多个头文件,如果两个都有 #include,是否会导致任何问题<string>?
- 添加许多 -isystem include 指令是否会显著减慢编译过程
- 键入 <iostream>#include 时,是否包含模板?
- 是否有 gcc 或 makefile 的机制可以描述源文件的包含文件以替换 #include "xxxx.h"?
- C++:在'#include <files>'之前是否允许命名空间定义。