最近做的工作用openwrt SDK开发,其中有一部分C语言读数据我们用LUA for C API ,直接在头文件中像下面这样写会有问题
#include <uci.h>
编译时会出现错误如下:
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中添加如下选项:
-luci
同时在package/youapp/Makefile的
define Package/ddns_update ... ... endef
段中添加如下代码:
DEPENDS:=+libuci
以上为解决方案,同时如果编译遇到怪癖的问题请检查以下两点
1、是否在这份代码中使用root身份做了什么?
PS:如果那样的话貌似编译器都找不到交叉编译的库在哪里,甚至会告诉你openwrt-linux-gcc未找到
2、是否有从别处复制粘贴过来的代码?
PS:如果有的话,请确认一下是不是原来的代码中的Tab到你的代码里变成了4个或者8个空格?
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。