Chinaunix首页 | 论坛 | 博客
  • 博客访问: 446772
  • 博文数量: 26
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-28 11:38
文章分类

全部博文(26)

文章存档

2020年(2)

2015年(3)

2014年(16)

2013年(1)

2012年(4)

我的朋友

分类: LINUX

2014-06-03 10:02:20

最近做的工作用openwrt SDK开发,其中有一部分C语言读数据我们用LUA for C API ,直接在头文件中像下面这样写会有问题

  1. #include <uci.h>

编译时会出现错误如下:

  1. xxx.c:(.text+0x1f8): undefined reference to `uci_alloc_context'
  2. xxx.c:(.text+0x210): undefined reference to `uci_lookup_ptr'
  3. xxx.c:(.text+0x228): undefined reference to `uci_perror'
  4. xxx.c:(.text+0x270): undefined reference to `uci_free_context

解决方法是在src/Makefile中添加如下选项:

  1. -luci
同时在package/youapp/Makefile的

  1. define Package/ddns_update

  2. ...
  3. ...
  4. endef

段中添加如下代码:

  1. DEPENDS:=+libuci
以上为解决方案,同时如果编译遇到怪癖的问题请检查以下两点
1、是否在这份代码中使用root身份做了什么?
PS:如果那样的话貌似编译器都找不到交叉编译的库在哪里,甚至会告诉你openwrt-linux-gcc未找到
2、是否有从别处复制粘贴过来的代码?
PS:如果有的话,请确认一下是不是原来的代码中的Tab到你的代码里变成了4个或者8个空格?


阅读(5406) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~