c – 支持linux / types.h OSX

前端之家收集整理的这篇文章主要介绍了c – 支持linux / types.h OSX前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用OSX交叉编译应用程序.但是,当我编译我得到以下内容
  1. fatal error: 'linux/types.h' file not found

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

  1. error: unknown type name '__s32'
  2. unknown type name '__u8'
  3. unknown type name '__u16'
  4. etc

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

解决方法

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

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

  1. #include "linux/types.h"

有了这个:

  1. #include "my_linux_types.h"

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

  1. #ifndef my_linux_types_h
  2. #define my_linux_types_h
  3.  
  4. #ifdef __linux__
  5. # include "linux/types.h"
  6. #else
  7. # include <stdint.h>
  8. typedef int32_t __s32;
  9. typedef uint8_t __u8;
  10. typedef uint16_t __u16;
  11. [... and so on for whatever other types your program uses ...]
  12. #endif
  13.  
  14. #endif

猜你在找的C&C++相关文章