执行Qmake后运行make出现编译错误求助
解决编译时stdlib.h找不到的错误
这个问题我之前碰到过,核心原因是你在ankidrive.pro里添加的INCLUDEPATH += /usr/include/打乱了GCC的头文件搜索顺序,导致#include_next <stdlib.h>无法找到系统标准的stdlib.h文件。
具体分析
从你提供的Makefile可以看到,INCPATH里包含了-isystem /usr/include,这会让GCC把/usr/include当作系统头文件路径来处理,但GCC自带的C++标准库头文件(比如/usr/include/c++/7/stdlib.h)里用#include_next <stdlib.h>是为了引用系统原生的/usr/include/stdlib.h。当你手动把/usr/include设为-isystem路径时,GCC的搜索逻辑被干扰,无法正确定位到系统的stdlib.h。
解决方案
修改.pro文件
打开ankidrive.pro,删除这一行:INCLUDEPATH += /usr/include/系统默认已经会自动包含
/usr/include这个标准头文件路径,不需要手动添加。确认依赖完整性
虽然你已经安装了build-essential,但可以再确认下libc6-dev是否安装(它包含系统标准头文件):sudo apt install libc6-dev重新编译
先清理之前的编译文件,再重新执行qmake和make:make clean qmake ankioverdrive.pro make
这样应该就能解决stdlib.h找不到的编译错误了。
内容的提问来源于stack exchange,提问作者Renji
相关产品推荐
相关产品推荐

