最近做的工作用openwrt SDK开发,其中有一部分C语言读数据我们用LUA for C API ,直接在头文件中像下面这样写会有问题
编译时会出现错误如下:
-
xxx.c:(.text+0x1f8): undefined reference to `uci_alloc_context'
-
xxx.c:(.text+0x210): undefined reference to `uci_lookup_ptr'
-
xxx.c:(.text+0x228): undefined reference to `uci_perror'
-
xxx.c:(.text+0x270): undefined reference to `uci_free_context
解决方法是在src/Makefile中添加如下选项:
同时在package/youapp/Makefile的
-
define Package/ddns_update
-
-
...
-
...
-
endef
段中添加如下代码:
以上为解决方案,同时如果编译遇到怪癖的问题请检查以下两点
1、是否在这份代码中使用root身份做了什么?
PS:如果那样的话貌似编译器都找不到交叉编译的库在哪里,甚至会告诉你openwrt-linux-gcc未找到
2、是否有从别处复制粘贴过来的代码?
PS:如果有的话,请确认一下是不是原来的代码中的Tab到你的代码里变成了4个或者8个空格?
阅读(5406) | 评论(0) | 转发(0) |