拿了一个hello.dylib,require("hello") 的时候会报这两个错,原因是hello.dylib内部使用的lua版本跟我mac os上使用的lua版本不一致导致的,修改了本机的lua版本跟hello.dylib保持一致,这两个问题就都解决了。
为了解决这个问题折腾了一天,一开始以为是这个动态库加密了,用Hopper反编译了下,找了加密的关键字,然而并没有,确定这个动态库没有加密。然后就寻思不会是lua版本不一致吧,我就开始try,先自己用5.3.3版本的lua写了一个dylib,把这个dylib放到虚拟机上,虚拟机上的lua版本是5.2.4的,结果报“Segmentation fault 11”的错,自己写的dylib放在同事的lua 5.3.0电脑上报"Bus error:10"的错,于是我不想一个版本一个版本的试下去,直接问了对方hello.dylib的lua版本,结果告诉我是5.1的,瞬间我都无语了,这么老的版本,我万万想不到呀!重装了5.1版本,require hello.dylib ok了。
以上。
网友评论