c – 支持linux / types.h OSX

我正在尝试使用OSX交叉编译应用程序.但是,当我编译我得到以下内容
Fatal error: 'linux/types.h' file not found

当我更改为sys / types.h,现在我得到…

error: unkNown type name '__s32'
 unkNown type name '__u8'
 unkNown type name '__u16'
 etc

有人可以帮我解决这个问题吗?

解决方法

显然,一个Linux特定的头文件不会出现在MacOS / X下,这不是基于Linux的.

解决问题的最简单的办法是通过你的程序来替换所有的实例

#include "linux/types.h"

有了这个:

#include "my_linux_types.h"

…并写入一个名为my_linux_types.h的新头文件,并将其添加到您的项目中;它会看起来像这样:

#ifndef my_linux_types_h
#define my_linux_types_h

#ifdef __linux__
# include "linux/types.h"
#else
# include <stdint.h>
typedef int32_t __s32;
typedef uint8_t __u8;
typedef uint16_t __u16;
[... and so on for whatever other types your program uses ...]
#endif

#endif

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...