debian RT-AC68U 交叉编译链 编译 ChinaDNS 失败

2015-02-28 22:43:22 +08:00
 xzm1006
我git clone完后使用./autogen.sh && CC=arm-uclibc-linux-2.6.36-gcc CXX=arm-uclibc-linux-2.6.36-g++ AR=arm-uclibc-linux-2.6.36-ar RANLIB=arm-uclibc-linux-2.6.36-ranlib ./configure --host=arm-uclibc-linux --enable-static && make进行编译

结果报错如下:

arm-uclibc-linux-2.6.36-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT chinadns.o -MD -MP -MF .deps/chinadns.Tpo -c -o chinadns.o chinadns.c
mv -f .deps/chinadns.Tpo .deps/chinadns.Po
arm-uclibc-linux-2.6.36-gcc -g -O2 -static -o chinadns chinadns.o -lresolv
chinadns.o: In function `hostname_from_question':
/root/ChinaDNS/src/chinadns.c:727: undefined reference to `__ns_parserr'
chinadns.o: In function `should_filter_query':
/root/ChinaDNS/src/chinadns.c:767: undefined reference to `__ns_parserr'
chinadns.o: In function `dns_handle_remote':
/root/ChinaDNS/src/chinadns.c:655: undefined reference to `__ns_initparse'
chinadns.o: In function `dns_handle_local':
/root/ChinaDNS/src/chinadns.c:567: undefined reference to `__ns_initparse'

请问应该如何解决?本来想@ /t/124550 76L的szpunk,但是他似乎很久没上了
6079 次点击
所在节点    问与答
30 条回复
qq674949301
2015-09-30 18:28:15 +08:00
@kdrx 请问您静态编译是参照哪个 wiki 的,能否给一下编译参数!我编译的成功但是运行报错!
kdrx
2015-10-01 02:39:56 +08:00
我的目标机器是 asus ac68u, 如果不装 entware-arm ,默认没有 libresolv 动态库,按照 XiaoxiaoPu 修改的代码内嵌 libresolv 静态编译后,没有 libresolv 也一样运行,大小只有 22k 左右。
tomato 我不太清楚是不是也因为没有这个库导致不能运行。
kdrx
2015-10-01 02:57:39 +08:00
kdrx
2015-10-01 02:59:00 +08:00
@qq674949301
编译好的不依赖 libresolv.so 的 chinadns , arm 平台可用。
链接: http://pan.baidu.com/s/1c0jVVd2 密码: 92yh
qq674949301
2015-10-01 11:14:19 +08:00
@kdrx 谢谢啊!我可以用 OP 的 SDK 就可以动态编译 1.3.2 ,您之前编译那个静态版本的参数能否提供一下,我按照 chinadns 提供的静态编译 ARM 下不能成功运行,提示 chinadns: line 1: syntax error: unexpected word (expecting ")") ,然而 mips 按照次编译完全没有问题!所以您能否提供一下你之前静态编译的编译参数!
qq674949301
2015-10-01 15:35:06 +08:00
@kdrx 还有 1.3.2 有时候会出现不能解析一些需要 FQ 的 IP 的情况!
kdrx
2015-10-02 01:17:54 +08:00
@qq674949301
sorry ,时间太久了,我搞错了,我也是动态编译的,只是把 libresolv 相关代码内嵌,去除对这个动态库的依赖。编译方法完全等同于 github 主页上的方法。
kdrx
2015-10-02 01:19:51 +08:00
@kdrx
另外你如果要静态编译,我试过小米的交叉编译工具可以静态编译通过,按照主页对于 tomato 平台静态编译的参数编译即可。
qq674949301
2015-10-02 12:43:27 +08:00
@kdrx 非常感谢,我先去试试!
qq674949301
2015-10-02 21:07:23 +08:00
@kdrx 非常感谢!编译出来可以正常运行,不知道你能否提供一份内嵌 libresolv 动态库 chinadns 1.3.1 源码给我! wojiaolinmu008@gmail.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/173629

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX