@qianchenzhumeng 在 tina_sdk 如何使用mosquitto进行mqtt通信? 中说:
未定义的那些符号应该是旧版
openssl
的接口。在Tina-Linux
的menuconfig
中使能openssl
编译,并启用兼容过时接口选项,设置兼容至1.0.0
版本(依据是openssl-1.1.0i/Configure
中的$apitable
,版本号必须是$apitable
中有的,否则编译不过)。这样做之后,应该就可以找到了。
@qianchenzhumeng 在 tina_sdk 如何使用mosquitto进行mqtt通信? 中说:
未定义的那些符号应该是旧版
openssl
的接口。在Tina-Linux
的menuconfig
中使能openssl
编译,并启用兼容过时接口选项,设置兼容至1.0.0
版本(依据是openssl-1.1.0i/Configure
中的$apitable
,版本号必须是$apitable
中有的,否则编译不过)。这样做之后,应该就可以找到了。
未定义的那些符号应该是旧版 openssl
的接口。在 Tina-Linux
的 menuconfig
中使能 openssl
编译,并启用兼容过时接口选项,设置兼容至 1.0.0
版本(依据是 openssl-1.1.0i/Configure
中的 $apitable
,版本号必须是 $apitable
中有的,否则编译不过)。这样做之后,应该就可以找到了。
两种方法:
pack
前把库放到 rootfs/lib
里面去(lunch
后输入 crootfs
命令可以进入 rootfs
目录),然后再 pack
。为 musl
编译的时候,把 CMakeLists.txt
中的 anl
删掉即可:https://github.com/qianchenzhumeng/iot_gw#1-找不到-libanl
wsl1 不支持运行 32 位的二进制文件,升级成 wsl2 就可以了。
# 查看名称和版本号
wsl -l -v
比如:
NAME STATE VERSION
* Ubuntu Running 1
Ubuntu-18.04 Stopped 2
设置版本:
wsl --set-version Ubuntu 2
等个几分钟就可以了。
编 rpcd
可能还会在链接时遇到 crypt
函数未定义的错误,需要增加链接标志,链接 crypt
库:rpcd: Explicitly link with lcrypt
我编 f133 版本的时候也遇到这个问题了,怀疑是工具链的问题,认为 uint16_t
的 port->port_min
和 port->port_max
的最大值是 2147483647
。
比较快的方法是修改一下源码,找到 firewall-2016-01-29
文件夹下所有包含 65535
字符串的行,把 65535
修改成 2147483647
就可以了,其实就是把 buf
改大一点。
应该也可以把告警转错误的编译选项 Werror
去掉,不过我还没找到地方。
grep "65535" ./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/ -nr
修改后是这样的:
grep "2147483647" ./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/ -nr
./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/iptables.c:835: char buf[sizeof("2147483647:2147483647\0")];
./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/redirects.c:348: char buf[sizeof("2147483647-2147483647\0")];
./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/redirects.c:367: char buf[sizeof("255.255.255.255:2147483647-2147483647\0")];
./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/utils.c:570: char buf[sizeof("2147483647-2147483647\0")];
./out/f133-mq_r/compile_dir/target/firewall-2016-01-29/snats.c:275: char buf[sizeof("255.255.255.255:2147483647-2147483647\0")];
就可以编过了。
我也是想用 luci
才遇到这个问题的,但是不光是这个问题,即便编译过了,烧录启动后,浏览器访问时,lua
会提示连接 ubus
有问题,顺着这个下去,发现 ubusd
也无法运行。
路好像还很长。