xLua icon indicating copy to clipboard operation
xLua copied to clipboard

libxlua.a 能否支持 Apple Silicon?

Open tpxxn opened this issue 5 years ago • 13 comments

tpxxn avatar Nov 04 '20 07:11 tpxxn

@tpxxn 不知道你是否已经解决了这个问题,编译出来了适用于mac的arm64的libxlua.a,分享一下我的做法。

  1. clone 项目
  2. 修改build/CMakeLists.txt line: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 )
  1. 进入build目录,在终端中执行 ./make_osx_lua53.sh 编译会成功,但是cp会失败,因为编译出了libxlua.a而不是原来的文件。此时在build/build_osx/Relase目录下即可找到libxlua.a

wfireleaves avatar Nov 18 '21 14:11 wfireleaves

@wfireleaves 我按你的方法生成了 libxlua.a,但是在编辑器下运行时还是报错了,是需要设置吗?还是需要放在 Plugin 下面特定的目录中? DllNotFoundException: xlua assembly: type: member:(null) XLua.LuaEnv..ctor () (at Assets/XLua/Src/LuaEnv.cs:66)

我使用的Unity版本是 2021.2.3f1 Apple Silicon版本,机器是 mac mini m1 芯片的

meowsay avatar Nov 25 '21 15:11 meowsay

@moeif 抱歉,在unity中的使用我就无法提供后续的帮助了。 我用到 libxlua.a 是因为编译 C 代码用到了这个链接库,之前用Windows和Linux环境的链接库,项目没有提供mac arm64环境下的版本,于是我就自己编译,然后把这个文件拿到了我自己的项目中去用了。 至于编译出来之后,如何应用在unity中,可能需要你再探索一下或者寻求官方的帮助

wfireleaves avatar Nov 25 '21 15:11 wfireleaves

@moeif 抱歉,在unity中的使用我就无法提供后续的帮助了。 我用到 libxlua.a 是因为编译 C 代码用到了这个链接库,之前用Windows和Linux环境的链接库,项目没有提供mac arm64环境下的版本,于是我就自己编译,然后把这个文件拿到了我自己的项目中去用了。 至于编译出来之后,如何应用在unity中,可能需要你再探索一下或者寻求官方的帮助

OK,感谢

meowsay avatar Nov 25 '21 15:11 meowsay

@moeif, 你找到了解决的办法了吗?我也尝试用apple silicon版的unity,遇到了和你一样的问题

liuxuan123 avatar Jan 01 '22 11:01 liuxuan123

找到解决方案了,但是解决过程我忘记了,大概方向知道,我之前提这个问题,问题本身其实不对,我是在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: @.***>

meowsay avatar Jan 01 '22 12:01 meowsay

感谢,我也已经解决了,xlua.bundle放在arm64目录下

liuxuan123 avatar Jan 02 '22 11:01 liuxuan123

@liuxuan123 怎么处理的我也放在arm64下但是没有用,也尝试过使用m1 mac重新编译,但是没有解决问题

mtmtraveler avatar Feb 20 '22 16:02 mtmtraveler

感谢,我也已经解决了,xlua.bundle放在arm64目录下

请问是放在WSA下面的ARM64下面吗 我拖到这里面好像没有什么效果啊 @liuxuan123

WTY0016 avatar Apr 01 '22 16:04 WTY0016

@WTY0016 放Plugins/arm64下试试看?

chexiongsheng avatar Apr 02 '22 06:04 chexiongsheng

折腾了好久,终于解决了,直接clonexlua工程什么都不用改重新编译一个xlua.bundle 出来,copy到Plugins/arm64下就可以了

Sictiy avatar Apr 06 '22 16:04 Sictiy

你好老哥,我直接clone,用unity去打开,然后直接给我甩个报错了,DllNotFoundException: xlua assembly: type: member:(null) XLua.LuaEnv..ctor () (at Assets/XLua/Src/LuaEnv.cs:66),然后还有我这边Plugins下面没有arm64这个文件夹,难顶啊

DZRgogogo avatar Apr 26 '22 15:04 DZRgogogo