如何修复 cstdlib 中 stdlib.h 的 include_next 问题?

3

我正在构建可重定向反编译器(简称RetDec),遇到了以下错误:

In file included from /usr/local/include/c++/8.2.0/ext/string_conversions.h:41,
                 from /usr/local/include/c++/8.2.0/bits/basic_string.h:6391,
                 from /usr/local/include/c++/8.2.0/string:52,
                 from /usr/local/include/c++/8.2.0/stdexcept:39,
                 from /usr/local/include/c++/8.2.0/array:39,
                 from /usr/local/include/c++/8.2.0/tuple:39,
                 from /usr/local/include/c++/8.2.0/bits/unique_ptr.h:37,
                 from /usr/local/include/c++/8.2.0/memory:80,
                 from /home/chronos/user/Downloads/git/retdec/build/external/src/yaramod-project/include/yaramod/builder/yara_expression_builder.h:9,
                 from /home/chronos/user/Downloads/git/retdec/build/external/src/yaramod-project/src/builder/yara_expression_builder.cpp:7:
/usr/local/include/c++/8.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
compilation terminated.
make[5]: *** [src/CMakeFiles/yaramod.dir/build.make:74: src/CMakeFiles/yaramod.dir/builder/yara_expression_builder.cpp.o] Error 1
make[4]: *** [CMakeFiles/Makefile2:109: src/CMakeFiles/yaramod.dir/all] Error 2
make[3]: *** [Makefile:130: all] Error 2

我之前遇到过这个错误并解决了它,但是我无法确切地记得我是如何解决的。

怎么修复这个问题?

我看到这个问题:编译OpenCV时出错,致命错误:stdlib.h:没有那个文件或目录

那里的答案对我没有帮助。

2个回答

1
啊,我现在记起来了:你必须将 -isystem <stdlib.h 所在的位置> 的实例替换为 -I <stdlib.h 所在的位置>

6
请问您能否多加解释一些? - mohamed_abdullah

0
我试图解决这个问题,但浪费了5个小时。最后,我手动在三个文件中将#include_next替换为#include
  • cstdlibstd_abs.h中,将#include_next <stdlib.h>替换为#include <stdlib.h>
  • cmath中,将#include_next <math.h>替换为#include <math.h>
我知道这不是真正的解决办法。但我别无选择。
编辑: 在我的情况下,这些文件位于C:\msys64\mingw64\include\c++\<version>\

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接