西安 网站建设 培训班wordpress全站伪静态
西安 网站建设 培训班,wordpress全站伪静态,建网站用哪个好,网站的大图标怎么做Lua 是一个功能强大、高效、轻量级、可嵌入的脚本语言。它支持程序编程、面向对象程序设计、函数式编程、数据驱动编程和数据描述。 Lua的官方网站上只提供了源码#xff0c;需要使用Make进行编译#xff0c;具体的编译方法为
curl -R -O http://www.lua.org/ftp/lua-5.4.6.…Lua 是一个功能强大、高效、轻量级、可嵌入的脚本语言。它支持程序编程、面向对象程序设计、函数式编程、数据驱动编程和数据描述。 Lua的官方网站上只提供了源码需要使用Make进行编译具体的编译方法为
curl -R -O http://www.lua.org/ftp/lua-5.4.6.tar.gz
tar zxf lua-5.4.6.tar.gz
cd lua-5.4.6
make all testluaforwindows提供了Windows下的lua环境不过已经很久没更新了。 虽然Windows下没有make但是可以考虑通过cmake来编译lua。
编译准备
需要提前安装下面这些软件2和3只需要选一个安装来作为编译器。
cmakevisual studiomingw
开始编译
下载lua的源码解压至一个文件夹内。 进入src文件夹内创建CMakeLists.txt内容如下
cmake_minimum_required(VERSION 3.0.0)
project(lua VERSION 0.1.0 LANGUAGES C)include_directories(${PROJECT_BINARY_DIR})aux_source_directory(. C_LIST) # 将当前路径下的所有源文件放在C_LIST变量中
list(REMOVE_ITEM C_LIST ./lua.c ./luac.c) # 从C_LIST中删除./lua.c和./luac.cfile(GLOB_RECURSE luamain RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lua*.c) # 得到当前目录下所有以lua开头的源文件即lua.c和luac.c
foreach(mainfile IN LISTS luamain)get_filename_component(mainname ${mainfile} NAME_WE) # 得到文件名lua和luacadd_executable(${mainname} ${mainfile} ${C_LIST}) # mainname为可执行文件的名字mainfile C_LIST则是生成可执行文件的源文件。
endforeach()include(CTest)
enable_testing()set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)由于源码中一共有两个c文件lua.c和luac.c存在main函数所以需要分别编译。get_filename_component(mainname ${mainfile} NAME_WE)的作用是获取不包含目录也不包含最长扩展名的文件名即mainname为lua和luac。
如果已经安装了visual studio可以直接开始编译确保在src文件夹中执行下面的命令
cmake -Bbuild cmake --build ./build最后可以在src\build\Debug文件夹中找到lua.exe和luac.exe两个文件。
如果只安装了mingw需要在CMakeLists.txt中指定编译器我的电脑中visual studio和mingw都有不确定是不是必要的将下面这两行加到CMakeLists.txt中需要把路径修改为mingw安装的路径
set (CMAKE_C_COMPILER D:/mingw64/bin/gcc)
set (CMAKE_CXX_COMPILER D:/mingw64/bin/g)添加后的CMakeLists.txt为
cmake_minimum_required(VERSION 3.0.0)
project(lua VERSION 0.1.0 LANGUAGES C)
# 指定编译器
set (CMAKE_C_COMPILER D:/mingw64/bin/gcc)
set (CMAKE_CXX_COMPILER D:/mingw64/bin/g)include_directories(${PROJECT_BINARY_DIR})aux_source_directory(. C_LIST)
list(REMOVE_ITEM C_LIST ./lua.c ./luac.c)file(GLOB_RECURSE luamain RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lua*.c)
foreach(mainfile IN LISTS luamain)# Get file name without directoryget_filename_component(mainname ${mainfile} NAME_WE)add_executable(${mainname} ${mainfile} ${C_LIST})
endforeach()include(CTest)
enable_testing()set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)同时在执行时指明参数-G MinGW Makefiles
cmake -Bbuild -G MinGW Makefiles cmake --build ./build最后可以在src\build文件夹中找到lua.exe和luac.exe这两个文件
测试lua
命令行
D:\compile\temp\lua-5.4.6\src\buildlua
Lua 5.4.6 Copyright (C) 1994-2023 Lua.org, PUC-Rioprint(hello world)
hello worldos.exit()脚本 编写一个lua文件test.lua
-- test.lua 文件脚本
a 5 -- 全局变量
local b 5 -- 局部变量
function joke()c 5 -- 全局变量local d 6 -- 局部变量
end
joke()
print(c,d) -- 5 nil
dolocal a 6 -- 局部变量b 6 -- 对局部变量重新赋值print(a,b); -- 6 6
end
print(a,b) -- 5 6D:\compile\temp\lua-5.4.6\src\buildlua test.lua
5 nil
6 6
5 6
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88954.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!