ARM64架构的Linux系统中编译C++程序报错fatal error: sys/io.h: No such file or directory

原因是不同的Linux平台的 io.h 放置的位置不同。Windows下的io.h直接包含即可;
Linux平台下在sys文件夹下;ARM架构的系统中在sys文件夹下,而且名字也不一样,变成了uio.h
解决方法是,在包含io.h时添加宏定义分支,检测当前平台是Windowsx86 Linux还是ARM Linux。例如(__ARM__是在自己在项目中添加的宏定义。):

#ifdef WIN32
#include 
#elif defined(__ARM__)
#include 
#else
#include 
#endif

转载自博文

你可能感兴趣的:(linux,c++)