如何在程序中包含<ieee80211.h>?

时间:2016-08-19 06:26:58

标签: c linux openwrt

当我在openwrt上开发时,我在我的程序中包含ieee80211.h,但是当我编译时,控制台提醒我ieee80211.h找不到。然后我设置这样的包含路径 #include"/home/openwrtsdk/build_dir/build_dir/target_mips_34kc_uClibc_0.9.33.2/linux_firmware52442afee9907bc32a058f22bb3295d040677c26/carl9170fw/include/linux/ieee80211.h",编译,它也不起作用,并且有以下内容:

error:
/home/xuwy/openwrt/OpenWrt-SDK-15.05.1-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-firmware-52442afee9907bc32a058f22bb3295d040677c26/carl9170fw/include/linux/ieee80211.h:897:2: error: unknown type name '__le16'   __le16 control;   

error: /home/xuwy/openwrt/OpenWrt-SDK-15.05.1-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-firmware-52442afee9907bc32a058f22bb3295d040677c26/carl9170fw/include/linux/ieee80211.h:898:2: error: unknown type name '__le16'
  __le16 start_seq_num;

现在,我对此没有任何想法,任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:2)

这是隐含推断的那些事物之一;但包含文件的路径不能是绝对的。编译器有自己的内置PATH - 类似的编译变量,由一组默认目录(例如/usr/include/usr/local/include)和用户指定的目录填充通过POSIX标准-I选项。要包含标题,请使用附加的-I选项编译您的程序,如下所示。

cc -o myprogram main.c -I "/home/openwrtsdk/build_dir/build_dir
/target_mips_34kc_uClibc_0.9.33.2
/linux_firmware52442afee9907bc32a058f22bb3295d040677c26/carl9170fw
/include/linux"

...在您的源文件中,只需添加:

#include <ieee80211.h>