zoukankan      html  css  js  c++  java
  • openwrt编译报错,找不到json文件 fatal error: json-c/json.h: No such file or directory

    最近在修改配置文件等一番操作后,编译报错了:

    [  4%] Building C object CMakeFiles/netifd.dir/handler.c.o
    In file included from /home/jack/openwrt/7621-openwrt/build_dir/target-mipsel_24kc_musl/netifd-2020-12-14-88c6003e/handler.c:22:
    /home/jack/openwrt/7621-openwrt/build_dir/target-mipsel_24kc_musl/netifd-2020-12-14-88c6003e/handler.h:18:10: fatal error: json-c/json.h: No such file or directory
     #include <json-c/json.h>
              ^~~~~~~~~~~~~~~
    compilation terminated.
    CMakeFiles/netifd.dir/build.make:133: recipe for target 'CMakeFiles/netifd.dir/handler.c.o' failed

    看提示是handler.c.o找不到json.h文件失败。

    查找引导json文件的路径及是否存在:进入到CMakeFiles/netifd.dir/目录(编译后生成的目录,在handler.c的目录中,其它文件编译时基本也会在其目录中生成相应的CMakeFile目录)

    /7621-openwrt/build_dir/target-mipsel_24kc_musl/netifd-2020-12-14-88c6003e/CMakeFiles/netifd.dir/目录中,查看flags.make,
    C_FLAGS = -Os -pipe -mno-branch-likely -mips32r2 
    -mtune=24kc -fno-caller-saves -fno-plt -fhonour-copts
    -Wno-error=unused-but-set-variable
    -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16
    -fmacro-prefix-map=/home/jack/openwrt/7621-openwrt/build_dir/target-mipsel_24kc_musl/netifd-2020-12-14-88c6003e=netifd-2020-12-14-88c6003e
    -Wformat -Werror=format-security -fstack-protector
    -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/home/jack/openwrt/7621-openwrt/staging_dir/target-mipsel_24kc_musl/usr/include/libnl-tiny
    -I/home/jack/openwrt/7621-openwrt/staging_dir/target-mipsel_24kc_musl/usr/include -flto -DNDEBUG -Os -Wall -Werror
    --std=gnu99 -Wmissing-declarations -Wno-unknown-warning-option -Wno-format-truncation -Wimplicit-fallthrough -g3

    引用的 json.c 文件路径在    /7621-openwrt/staging_dir/target-mipsel_24kc_musl/usr/include  目录中

    经查看,目录中只有一个名称为 json 的目录及里中也有 json.c 文件。  随猜想其他的文件可能引用的也是 json-c/json.c 这个目录。故,把 json目录名 改为 json-c

    重新编译后,正常通过。

    后记,遇到相似找不到引用文件的报错,可使用相似方法处理。缺依赖库需要安装相应的依赖。

    另一方法是:make dirclean  清除target_dir和build_dir的内容,重新生成。

  • 相关阅读:
    用开源项目CropImage实现图片的裁剪(不推荐)
    设定当前视图中所有控件字体的方法
    用开源项目cropper实现对图片中任意部分进行裁剪
    从源码角度一步一步来修改PreferenceActivity界面
    自定义PreferenceActivity和PreferenceFragment的样式
    Eclipse 在线汉化的和修改字体大小、颜色的方法
    用level-list让同一个ImageView根据条件来显示不同的内容
    ClipDrawable属性介绍
    自己用图片做的可旋转、不确定进度的ProgressBar
    Android工具类 DateUtil,可以用它方便的进行日期的操作
  • 原文地址:https://www.cnblogs.com/jackron/p/14209534.html
Copyright © 2011-2022 走看看