libxlua.a 能否支持 Apple Silicon?
@tpxxn 不知道你是否已经解决了这个问题,编译出来了适用于mac的arm64的libxlua.a,分享一下我的做法。
- clone 项目
- 修改
build/CMakeLists.txtline:158~169修改为如下的配置:
ADD_DEFINITIONS(-DLUA_USE_MACOSX) #osx platform emmylua debugger must have this option or can not load cpath
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
add_library(xlua STATIC
${LUA_CORE}
${LUA_LIB}
${LUA_SOCKET}
${XLUA_CORE}
${THIRDPART_SRC}
)
#set_target_properties ( xlua PROPERTIES BUNDLE TRUE )
#set_target_properties ( xlua PROPERTIES FRAMEWORK TRUE )
#set_target_properties ( xlua PROPERTIES MACOSX_RPATH TRUE )
- 进入build目录,在终端中执行
./make_osx_lua53.sh编译会成功,但是cp会失败,因为编译出了libxlua.a而不是原来的文件。此时在build/build_osx/Relase目录下即可找到libxlua.a
@wfireleaves 我按你的方法生成了 libxlua.a,但是在编辑器下运行时还是报错了,是需要设置吗?还是需要放在 Plugin 下面特定的目录中?
DllNotFoundException: xlua assembly:
我使用的Unity版本是 2021.2.3f1 Apple Silicon版本,机器是 mac mini m1 芯片的
@moeif 抱歉,在unity中的使用我就无法提供后续的帮助了。 我用到 libxlua.a 是因为编译 C 代码用到了这个链接库,之前用Windows和Linux环境的链接库,项目没有提供mac arm64环境下的版本,于是我就自己编译,然后把这个文件拿到了我自己的项目中去用了。 至于编译出来之后,如何应用在unity中,可能需要你再探索一下或者寻求官方的帮助
@moeif 抱歉,在unity中的使用我就无法提供后续的帮助了。 我用到 libxlua.a 是因为编译 C 代码用到了这个链接库,之前用Windows和Linux环境的链接库,项目没有提供mac arm64环境下的版本,于是我就自己编译,然后把这个文件拿到了我自己的项目中去用了。 至于编译出来之后,如何应用在unity中,可能需要你再探索一下或者寻求官方的帮助
OK,感谢
@moeif, 你找到了解决的办法了吗?我也尝试用apple silicon版的unity,遇到了和你一样的问题
找到解决方案了,但是解决过程我忘记了,大概方向知道,我之前提这个问题,问题本身其实不对,我是在M1芯片Mac mini,Unity编辑器状态下报错,其实要的不是 libxlua.a ,编辑器下需要的是xlua.bundle,你直接下载下xlua的工程来,什么都不需要改,然后在m1芯片的机器上重新编译一份,然后将编译好的 xlua.bundle 替换到Unity中,试一下,貌似是这样
2022年1月1日 下午7:58,liuxuan123 @.@.>> 写道:
@moeifhttps://github.com/moeif, 你找到了解决的办法了吗?我也尝试用apple silicon版的unity,遇到了和你一样的问题
— Reply to this email directly, view it on GitHubhttps://github.com/Tencent/xLua/issues/830#issuecomment-1003547478, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AT2XF7M4H2PWAIVUPN63MBTUT3T5HANCNFSM4TJWA4UA. Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.Message ID: @.***>
感谢,我也已经解决了,xlua.bundle放在arm64目录下
@liuxuan123 怎么处理的我也放在arm64下但是没有用,也尝试过使用m1 mac重新编译,但是没有解决问题
感谢,我也已经解决了,xlua.bundle放在arm64目录下
请问是放在WSA下面的ARM64下面吗 我拖到这里面好像没有什么效果啊 @liuxuan123
@WTY0016 放Plugins/arm64下试试看?
折腾了好久,终于解决了,直接clonexlua工程什么都不用改重新编译一个xlua.bundle 出来,copy到Plugins/arm64下就可以了
你好老哥,我直接clone,用unity去打开,然后直接给我甩个报错了,DllNotFoundException: xlua assembly: type: member:(null) XLua.LuaEnv..ctor () (at Assets/XLua/Src/LuaEnv.cs:66),然后还有我这边Plugins下面没有arm64这个文件夹,难顶啊