“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>这一行代码注释或者直接删掉,替换下下面的代码
重新编译即可!
“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; }重新编译即可!