开发者
鲲鹏环境下解决fatal error: 'sys/sysctl.h' file not found的方法
鲲鹏环境下解决fatal error: 'sys/sysctl.h' file not found的方法
发表于2024/05/24
391

“fatal error: 'sys/sysctl.h' file not found”当遇到这个错误信息时,表示在编译代码时找不到sys/sysctl.h文件。这个文件属于系统头文件的一部分,提供了各种系统级函数和定义。一般是glibc-devel下自带的,但一些类Unix系统中,比如openEuler 22.03 SP3系统,sys/sysctl.h文件已经被弃用和移除。

下面是解决这个问题的一些步骤:

在Linux系统上,通常不需要sys/sysctl.h,因为大多数功能可以通过/proc文件系统或其他系统调用来实现。

在报错的文件中,将#include <sys/sysctl.h>这一行代码注释或者直接删掉,替换下下面的代码

#include <stdio.h>
#include <stdlib.h>

int main() {
    long pages = sysconf(_SC_PHYS_PAGES);
    long page_size = sysconf(_SC_PAGE_SIZE);
    long memory_size = pages * page_size;
    printf("Memory size: %ld bytes\n", memory_size);
    return 0;
}

重新编译即可!

收藏举报
Level 1
0
帖子
0
粉丝
0
获赞