Xlua 编译 Windows、UWP、Android、iOS 平台支持库

Xlua 编译 Windows、UWP、Android、iOS 平台支持库

Windows:
安装 Visual Studio(推荐 2017 或更高版本)
安装 CMake(https://cmake.org/)

macOS:
安装 Xcode 和命令行工具
安装 CMake

检查 cmake 是否安装,打开命令行输入:cmake --version

C:\Users\Administrator>cmake --version
cmake version 3.30.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).

显示 cmake 版本表示安装成功

Mac cmake 也是一样
如果 Mac 没有安装 cmake 通过命令 brew install cmake 安装 Cmake,检查版本也是命令行输入 cmake --version

XLua gitHub 地址 https://github.com/Tencent/xLua?tab=readme-ov-file
下载路径如下
在这里插入图片描述

一、Windows 平台
  1. 生成支持 x86_64 平台库,打开 build 文件夹,找到命令文件 make_win64_lua53.bat
    打开命令行,执行 make_win64_lua53.bat
    执行成功输出如下
PS F:\xLua-master\build> F:\xLua-master\build\make_win64_lua53.bat

F:\xLua-master\build>set "__VS=Visual Studio 16 2019"

F:\xLua-master\build>set "__VSWhere=C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"

F:\xLua-master\build>set "__VSDISPLAY="

F:\xLua-master\build>set "__VSVER="

F:\xLua-master\build>if exist "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" (
for /F "tokens=*" %p in ('"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productLineVersion') do set __VSDISPLAY=%p
 for /F "tokens=*" %p in ('"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productDisplayVersion') do set __VSVER=%p
)

F:\xLua-master\build>set __VSDISPLAY=2019

F:\xLua-master\build>set __VSVER=16.11.38

F:\xLua-master\build>if "16.11.38" NEQ "" (set __VS=Visual Studio 16 2019 )

F:\xLua-master\build>mkdir build64   & pushd build64

F:\xLua-master\build\build64>cmake -G "Visual Studio 16 2019" -A x64 ..
CMake Deprecation Warning at CMakeLists.txt:7 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Selecting Windows SDK version 10.0.20348.0 to target Windows 10.0.22621.
-- The C compiler identification is MSVC 19.29.30154.0
-- The CXX compiler identification is MSVC 19.29.30154.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: H:/Software/VisualStudioProfessional2019/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: H:/Software/VisualStudioProfessional2019/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (5.4s)
-- Generating done (0.0s)
-- Build files have been written to: F:/xLua-master/build/build64

F:\xLua-master\build\build64>popd

F:\xLua-master\build>cmake --build build64 --config Release
用于 .NET Framework 的 Microsoft (R) 生成引擎版本 16.11.2+f32259642
版权所有(C) Microsoft Corporation。保留所有权利。

  1>Checking Build System
  Building Custom Rule F:/xLua-master/build/CMakeLists.txt
  lapi.c
  lauxlib.c
  lbaselib.c
  lbitlib.c
  lcode.c
  lcorolib.c
  lctype.c
  ldblib.c
  ldebug.c
  ldo.c
  ldump.c
  lfunc.c
  lgc.c
  linit.c
  liolib.c
  llex.c
  lmathlib.c
  lmem.c
  loadlib.c
  lobject.c
  正在生成代码...
  正在编译...
  lopcodes.c
  loslib.c
  lparser.c
  lstate.c
  lstring.c
  lstrlib.c
  ltable.c
  ltablib.c
  ltm.c
  lundump.c
  lutf8lib.c
  lvm.c
  lzio.c
  i64lib.c
  xlua.c
  memory_leak_checker.c
  正在生成代码...
  auxiliar.c
  buffer.c
  except.c
  inet.c
  io.c
  luasocket.c
  mime.c
  options.c
  select.c
  tcp.c
  timeout.c
  udp.c
  wsocket.c
  正在生成代码...
    正在创建库 F:/xLua-master/build/build64/Release/xlua.lib 和对象 F:/xLua-master/build/build64/Release/xlua.exp
  xlua.vcxproj -> F:\xLua-master\build\build64\Release\xlua.dll
  Building Custom Rule F:/xLua-master/build/CMakeLists.txt

F:\xLua-master\build>md plugin_lua53\Plugins\x86_64

F:\xLua-master\build>copy /Y build64\Release\xlua.dll plugin_lua53\Plugins\x86_64\xlua.dll

跟 build 同级目录生成文件夹 build64
在这里插入图片描述
日志 copy /Y build64\Release\xlua.dll plugin_lua53\Plugins\x86_64\xlua.dll 提示最后将 xlua.dll 复制到了目录 build\plugin_lua53\Plugins\x86_64\xlua.dll

打开Unity 项目将 xlua.dll 放到路径 Assets\Plugins\x86_64\xlua.dll

打开 make_win64_lua53.bat 查看

set "__VS=Visual Studio 16 2019"
set "__VSWhere=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
set "__VSDISPLAY="
set "__VSVER="
if exist "%__VSWhere%" (
    for /f "tokens=*" %%p in (
		'"%__VSWhere%" -latest -property catalog_productLineVersion'
	) do set __VSDISPLAY=%%p

	for /f "tokens=*" %%p in (
		'"%__VSWhere%" -latest -property catalog_productDisplayVersion'
	) do set __VSVER=%%p
	
)
if "%__VSVER%" neq "" (	
	set __VS=Visual Studio %__VSVER:~0,2% %__VSDisplay%
)

mkdir build64 & pushd build64
cmake -G "%__VS%" -A x64 ..
popd
cmake --build build64 --config Release
md plugin_lua53\Plugins\x86_64
copy /Y build64\Release\xlua.dll plugin_lua53\Plugins\x86_64\xlua.dll
pause

Visual Studio 16 2019 是 Visual Studio 2019 对应的是 16,不同 Visual Studio 版本对应的需要不同,设置不对会有报错
故意修改错误 cmake -G "Visual Studio 15 2019" -A x64 .. 将 16 改成 15
下面报错提示了 Visual Studio每个版本对应的序号以及后跟 -A 格式

cmake -G "Visual Studio 15 2019" -A x64 ..
CMake Error: Could not create named generator Visual Studio 15 2019

Generators
  Visual Studio 17 2022        = Generates Visual Studio 2022 project files.
                                 Use -A option to specify architecture.
* Visual Studio 16 2019        = Generates Visual Studio 2019 project files.
                                 Use -A option to specify architecture.
  Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
                                 Optional [arch] can be "Win64" or "ARM".
  Visual Studio 12 2013 [arch] = Deprecated.  Generates Visual Studio 2013
                                 project files.  Optional [arch] can be

make_win64_lua53.bat 代码精简后如下

mkdir build64 & pushd build64
cmake -G "Visual Studio 16 2019" -A x64 ..
popd
cmake --build build64 --config Release
md plugin_lua53\Plugins\x86_64
copy /Y build64\Release\xlua.dll plugin_lua53\Plugins\x86_64\xlua.dll
pause
  1. 生成支持 x86 平台库,打开 build 文件夹,找到命令文件 make_win32_lua53.bat
    打开命令行,执行 make_win32_lua53.bat
    跟 build 同级目录生成文件夹 build32
    成功则生成路径为 build\plugin_lua53\Plugins\x86\xlua.dll

打开Unity 项目将 xlua.dll 放到路径 Assets\Plugins\x86\xlua.dll

  1. 生成支持 UWP 平台的 x86、x86_64、arm、arm64 支持库
    生成文件:
build\build_uwp
build\build_uwp_arm
build\build_uwp_arm64
build\build_uwp64

xlua库生成路径如下

build\plugin_lua53\Plugins\WSA\ARM\xlua.dll
build\plugin_lua53\Plugins\WSA\ARM64\xlua.dll
build\plugin_lua53\Plugins\WSA\x64\xlua.dll
build\plugin_lua53\Plugins\WSA\x86\xlua.dll

打开Unity 添加路径 Assets\Plugins\WSA 然后将上面路径对应放进项目

二、Mac、iOS

Mac 和 iOS 平台必须在 Mac 电脑上执行
安装 XCode、cmake

同样是打开终端,cd 进入 build 文件夹
执行命令:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

1. 生成 MacOS支持库
make_osx_lua53.sh 拖拽到终端执行即可,终端当前命令必须赞 build 文件夹,否则会失败,比如 CMakeLiSt.txt 找不到等
会在 build 同级目录生成 build_osx 文件夹
lua库则是在 plugin_lua53/Plugins/xlua.bundle 这是 Mac OS 的支持库
因为 Mac 有 Intel 和 Apple Silicon 两种芯片类型
Intel 包含类型:
Intel Core 系列:Core i3、Core i5、Core i7 和 Core i9
Intel Xeon 系列:Xeon W、Xeon E5/E7
Intel Core M 系列:Core m3/m5/m7

Apple silicon 包含类型:
M1 系列:M1、M1 Pro、M1 Max 、M1 Ultra
M2 系列:M2、M2 Pro、M2 Max、M2 Ultra
M3 系列:M3、M3 Pro、M3 Max、

默认在 Intel 类型芯片的 Mac 上生成的 xlua 库是支持 Intel 的
默认在 Apple Silicon 类型西片的 Mac 上生成的 xlua 库是支持 Apple Silicon 的,两者一般不能共用

支持 Intel 芯片 的库放在路径:Assets/Plugins/macOS/x86_64/xlua.bundle (Intel 芯片的库)
选择 xlua.bundle (Intel 芯片的库) 在 Inspector 面板选择支持的 macOS -> CPU -> Intel 64-bit

支持 Apple Silicon芯片 的库放在路径:Assets/Plugins/macOS/arm64/xlua.bundle (Apple Silicon 芯片的库)
选择 xlua.bundle (Apple Silicon 芯片的库)在 Inspector 面板选择支持的 macOS -> CPU -> Apple silicon

2. 生成 iOS 支持库
执行命令 make_ios_lua53.sh
在 Build 同级目录生成 build_ios 文件夹
iOS 支持库生成到路径:build/plugin_lua53/Plugins/iOS/libxlua.a
打开 Unity 项目放到路径: Assets/Plugins/iOS/libxlua.a

三、生成 Android 支持库

windows 环境下大概率有问题,建议直接在 mac 上编译

需要安装 NDK、Android SDK 配置环境变量
如果终端使用 Zsh 作为默认 shell 时,环境变量配置到 ~/.zshrc
如果终端使用 Bash 作为默认 shell 时,环境变量配置到 ~/.bash_profile

我电脑是使用 Zsh 执行的 shell,执行命令 open ~/.zshrc 打开
我使用的 Unity 2022.3.26 ,通过 Unity Hub 安装了 SDK 和 NDK,找到 SDK 和 NDK 路径 ,打开 ~/.zshrc 在最后添加 四行命令

export ANDROID_NDK=/Application/Unity/2022.3.26f1/PlaybackEngines/AndroidPlayer/NDK
export ANDROID_SDK_ROOT=/Application/Unity/2022.3.26f1/PlaybackEngines/AndroidPlayer/SDK
export PATH=$PATH:$ANDROID_SDK_ROOT
export PATH=$PATH:$ANDROID_NDK_ROOT 

保存、关闭
执行命令 source ~/.zshrc 让配置生效
如果是配置的 ~/.bash_profile 文件,执行命令 source ~/.bash_profile 让配置生效

跟上面一样,到build 目录执行命令 make_android_lua53.sh

生成

build/plugin_lua53/Plugins/Android/lisb/arm64-v8a/libxlua.so
build/plugin_lua53/Plugins/Android/lisb/armeabi-v7a/libxlua.so
build/plugin_lua53/Plugins/Android/lisb/x86/libxlua.so

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

npm : 无法加载文件 E:\ProgramFiles\Nodejs\npm.ps1,因为在此系统上禁止运行脚本。

这个错误是因为 Windows 系统的 PowerShell 执行策略 限制了脚本的运行。默认情况下&#xff0c;PowerShell 的执行策略是 Restricted&#xff0c;即禁止运行任何脚本。以下是解决该问题的步骤&#xff1a; 1. 检查当前执行策略 打开 PowerShell&#xff08;管理员权限&#x…

基于专利合作地址匹配的数据构建区域协同矩阵

文章目录 地区地址提取完成的处理代码 在专利合作申请表中&#xff0c;有多家公司合作申请。在专利权人地址中&#xff0c; 有多个公司的地址信息。故想利用这里多个地址。想用这里的地址来代表区域之间的专利合作情况代表区域之间的协同、协作情况。 下图是专利合作表的一部分…

若依vue plus环境搭建

继前面文章若依系统环境搭建记录-CSDN博客 把ruoyi vue plus也摸索了下。 作者是疯狂的狮子&#xff0c;dromara/RuoYi-Vue-Plus 初始化文档&#xff1a;项目初始化&#xff0c;环境搭建的视频&#xff1a;RuoYi-Vue-Plus 5.0 搭建与运行_哔哩哔哩_bilibili 上来就列出了一…

在ubuntu如何安装samba软件?

我们在开发过程中&#xff0c;经常修改代码&#xff0c;可以安装samba文件来实现&#xff0c;把ubuntu的存储空间指定为我们win上的一个磁盘&#xff0c;然后我们在或者磁盘里面创建.c文件&#xff0c;进行代码修改和编写。samba能将linux的文件目录直接映射到windows&#xff…

论文阅读笔记:Deep Face Recognition: A Survey

论文阅读笔记&#xff1a;Deep Face Recognition: A Survey 1 介绍2 总览2.1 人脸识别组件2.1.1 人脸处理2.1.2 深度特征提取2.1.3 基于深度特征的人脸对比 3 网络结构和损失函数3.1 判别损失函数的演化3.1.1 基于欧式距离的损失3.1.2 基于角度/余弦边距的损失3.1.3 Softmax损失…

使用 Polars 进行人工智能医疗数据分析(ICU数据基本测试篇)

引言 在医疗领域&#xff0c;数据就是生命的密码&#xff0c;每一个数据点都可能蕴含着拯救生命的关键信息。特别是在 ICU 这样的重症监护场景中&#xff0c;医生需要实时、准确地了解患者的病情变化&#xff0c;以便做出及时有效的治疗决策。而随着医疗技术的飞速发展&#x…

Fiddler在Windows下抓包Https

文章目录 1.Fiddler Classic 配置2.配置浏览器代理自动代理手动配置浏览器代理 3.抓取移动端 HTTPS 流量&#xff08;可选&#xff09;解决抓取 HTTPS 失败问题1.Fiddler证书过期了 默认情况下&#xff0c;Fiddler 无法直接解密 HTTPS 流量。需要开启 HTTPS 解密&#xff1a; 1…

Anaconda安装 超详细版 (2025版)

目录 第一步&#xff1a;下载anaconda安装包 官网下载&#xff1a;Anaconda | Built to Advance Open Source AI 清华大学镜像站下载&#xff08;速度较快&#xff09; 第二步&#xff1a;安装anaconda 第三步&#xff1a;验证安装 扩展 创建conda基本环境 激活conda环…

想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!

视频讲解 想知道两轮差速方形底盘 URDF 咋做&#xff0c;ROS2 配 Rviz 咋显示吗&#xff1f;看这里&#xff01; 模型概述 一个方形底盘和两个差速驱动轮 URDF 代码 <?xml version"1.0" encoding"utf-8"?> <robot name"diff"> …

轻量化网络设计|ShuffleNet:深度学习中的轻量化革命

一、引言 在深度学习中&#xff0c;卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;无疑是大家最耳熟能详的算法之一。自诞生以来&#xff0c;CNN 在图像分类、目标检测、语义分割等众多计算机视觉任务中取得了令人瞩目的成就&#xff0c;…

最好Wordpree+Apache+PHP安装教程

前提需要 PHP的安装最少需要7.4以上Mysql的安装&#xff0c;直接默认最新版就行APache服务器&#xff08;HTTP服务器&#xff0c;只有用这个你的软件才能在服务器上运行&#xff09; 安装apache 安装 sudo apt install apache2查看防火墙 sudo ufw app list如果有 Apache那…

Linux实操——在服务器上直接从百度网盘下载(/上传)文件

Linux Linux实操——在服务器上直接从百度网盘下载&#xff08;/上传&#xff09;文件 文章目录 Linux前言一、下载并安装bypy工具二、认证并授权网盘账号三、将所需文件转移至目的文件夹下四、下载文件五、上传文件六、更换绑定的百度云盘账户 前言 最近收到一批很大的数据&…

一周一个Unity小游戏2D反弹球游戏 - 移动的弹板(触屏版)

前言 上文中实现了用鼠标移动控制弹板的移动&#xff0c;本文将实现手指触屏时弹板跟随手指移动的功能&#xff0c;并通过使用Unity自带的Device Simulator Devices Package来验证和模拟触屏设备的使用场景。 安装Device Simulator Devices Package 打开Unity Package Manager&…

DeepSeek 开源狂欢周(一)FlashMLA:高效推理加速新时代

上周末&#xff0c;DeepSeek在X平台&#xff08;Twitter&#xff09;宣布将开启连续一周的开源&#xff0c;整个开源社区为之沸腾&#xff0c;全球AI爱好者纷纷为关注。没错&#xff0c;这是一场由DeepSeek引领的开源盛宴&#xff0c;推翻了传统推理加速的种种限制。这周一&…

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测 目录 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机…

【Java项目】基于Spring Boot的校园闲置物品交易网站

【Java项目】基于Spring Boot的校园闲置物品交易网站 技术简介&#xff1a;采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介&#xff1a;校园闲置物品交易网站是一个典型的管理系统&#xff0c;主要功能包括管理员&#xff1a;首页、个人中心、用户管理、商品类…

Ray生产集群配置

Ray 作为一个新兴的高性能分布式计算框架 Ray 的配置方法:包括集群资源、日志与调试、端口配置、TLS 认证以及 Java 应用程序的配置等 Ray 的配置技巧,如何提升分布式计算的效率和可靠性。 一、Ray 集群资源配置 (一)资源自动检测 Ray 在启动时默认会自动检测可用的资源…

cpp每日温度(单调栈)

题目如下 输入n和n个温度值&#xff0c;输出所找到对应温度后面比其更大的温度值 代码及解析如下&#xff1a; 谢谢观看&#xff01;&#xff01;&#xff01;

校园快递助手小程序毕业系统设计

系统功能介绍 管理员端 1&#xff09;登录&#xff1a;输入账号密码进行登录 2&#xff09;用户管理&#xff1a;查看编辑添加删除 学生信息 3&#xff09;寄件包裹管理&#xff1a;查看所有的包裹信息&#xff0c;及物流信息 4&#xff09;待取件信息&#xff1a;查看已到达的…

【Excel】 Power Query抓取多页数据导入到Excel

抓取多页数据想必大多数人都会&#xff0c;只要会点编程技项的人都不会是难事儿。那么&#xff0c;如果只是单纯的利用Excel软件&#xff0c;我还真的没弄过。昨天&#xff0c;我就因为这个在网上找了好久发好久。 1、在数据-》新建查询-》从其他源-》自网站 &#xff0c;如图 …