Error "fatal error: 'sys/sysmacros.h' file not found"
Error "fatal error: 'sys/sysmacros.h' file not found"
我在 macOS v11 (Big Sur) with the standard Clang 编译器(版本 13.0.0)上遇到编译错误。
我正在尝试包含 sys/sysmacros.h 以使用 makedev() 函数,令人惊讶的是 is mentioned 在 Apple 开发者网站上并且应该与 macOS 15.5+ 兼容。
包括 sys/types.h 也会给我一个错误,但是 sys/stat.h 有效。可悲的是,它仍然没有给我我需要的 makedev()、major() 和 minor() 函数。
makedev 的 Linux 手册页指出 glibc 库有一些变化,但据我所知,macOS 不使用 glibc 库。
应该有一种使用 Homebrew (brew
) as described here, but I get the same error as was mentioned in this question 在 macOS 上安装 glibc 的简单方法。所以显然目前没有合适的方法来做,然后我不确定这是否能解决我的问题。
有解决办法吗?
宏makedev
定义在sys/types.h中。只需将 #include <sys/types.h>
添加到您的文件中。 sys/types.h是Kernel.framework的头文件。您应该在 Clang 调用中设置它,例如 clang -framework Kernel ...
.
您还可以按照在 sys/types.h:
中定义的方式定义这些宏
#define major(x) ((int32_t)(((u_int32_t)(x) >> 24) & 0xff))
#define minor(x) ((int32_t)((x) & 0xffffff))
#define makedev(x, y) ((dev_t)(((x) << 24) | (y)))
我在 macOS v11 (Big Sur) with the standard Clang 编译器(版本 13.0.0)上遇到编译错误。
我正在尝试包含 sys/sysmacros.h 以使用 makedev() 函数,令人惊讶的是 is mentioned 在 Apple 开发者网站上并且应该与 macOS 15.5+ 兼容。
包括 sys/types.h 也会给我一个错误,但是 sys/stat.h 有效。可悲的是,它仍然没有给我我需要的 makedev()、major() 和 minor() 函数。
makedev 的 Linux 手册页指出 glibc 库有一些变化,但据我所知,macOS 不使用 glibc 库。
应该有一种使用 Homebrew (brew
) as described here, but I get the same error as was mentioned in this question 在 macOS 上安装 glibc 的简单方法。所以显然目前没有合适的方法来做,然后我不确定这是否能解决我的问题。
有解决办法吗?
宏makedev
定义在sys/types.h中。只需将 #include <sys/types.h>
添加到您的文件中。 sys/types.h是Kernel.framework的头文件。您应该在 Clang 调用中设置它,例如 clang -framework Kernel ...
.
您还可以按照在 sys/types.h:
中定义的方式定义这些宏#define major(x) ((int32_t)(((u_int32_t)(x) >> 24) & 0xff))
#define minor(x) ((int32_t)((x) & 0xffffff))
#define makedev(x, y) ((dev_t)(((x) << 24) | (y)))