当我在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;
现在,我对此没有任何想法,任何人都可以提供帮助吗?
答案 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>