添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

title: lua-cmake编译lua
categories: Lua
tags: [lua, cmake]
date: 2020-09-01 15:59:03
comments: false
mathjax: true
toc: true

lua-cmake 编译 lua 可执行程序, 这里在 windows 环境下, 使用 clion 工具编译 lua 5.1

已上传到 GitHub: https://github.com/yangxuan0261/lua-5.1

  • 别人写好的 cmake 文件, 可以直接拿来用
    • lua 5.1 cmake 文件 - https://gist.github.com/squeek502/76fb065848897138a95d11f9aa0eedd4
    • lua 5.3 cmake 文件 - https://gist.github.com/squeek502/0706332efb18edd0601a4074762b0b9a

之前有写过用 vs 编译 lua lua-Visual_Studio编译Lua库.md , 必过 vs 太重了, 用 cmake 还可以跨平台.

  1. 下载 lua 5.1 源码. https://www.lua.org/ftp/lua-5.1.tar.gz

  2. 解压, 用 clion 工具打开工程

  3. 创建 CMakeLists.txt 文件, 把 lua 5.1 cmake 文件 - https://gist.github.com/squeek502/76fb065848897138a95d11f9aa0eedd4 粘贴进去 (别人制作好的 cmake 文件)

  4. 构建, build -> build project , 显示是构建出 四个 目标文件, 在 cmake-build-debug 目录下

    ====================[ Build | all | Debug ]=====================================
    "D:\JetBrains\CLion 2019.3.3\bin\cmake\win\bin\cmake.exe" --build D:\lua-5.1\cmake-build-debug --target all -- -j 4
    [ 46%] Built target libluadll
    [ 92%] Built target liblua
    [ 95%] Built target lua
    [100%] Built target luac
    Build finished
      
    • 测试一下构建出的 lua 可执行程序

CMakeLists.txt

project(lua C)
cmake_minimum_required(VERSION 2.8)
include_directories(src ${CMAKE_CURRENT_BINARY_DIR})
set(SRC_CORE src/lapi.c src/lcode.c src/ldebug.c src/ldo.c src/ldump.c src/lfunc.c src/lgc.c src/llex.c
        src/lmem.c src/lobject.c src/lopcodes.c src/lparser.c src/lstate.c src/lstring.c src/ltable.c
        src/ltm.c src/lundump.c src/lvm.c src/lzio.c)
set(SRC_LIB src/lauxlib.c src/lbaselib.c src/ldblib.c src/liolib.c
        src/lmathlib.c src/loslib.c src/lstrlib.c src/ltablib.c src/loadlib.c src/linit.c)
set(SRC_LUA src/lua.c)
set(SRC_LUAC src/luac.c src/print.c)
add_library(liblua ${SRC_CORE} ${SRC_LIB})
set_target_properties(liblua PROPERTIES OUTPUT_NAME lua)
add_library(libluadll SHARED ${SRC_CORE} ${SRC_LIB})
target_compile_definitions(libluadll PRIVATE _CRT_SECURE_NO_WARNINGS LUA_BUILD_AS_DLL)
set_target_properties(libluadll PROPERTIES OUTPUT_NAME lua51)
add_executable(lua ${SRC_LUA})
target_link_libraries(lua libluadll)
add_executable(luac ${SRC_LUAC})
target_link_libraries(luac liblua)
                    title: lua-cmake编译luacategories: Luatags: [lua, cmake]date: 2020-09-01 15:59:03comments: falsemathjax: truetoc: truelua-cmake 编译 lua 可执行程序, 这里在 windows 环境下, 使用 clion 工具编译 lua 5.1已上传到 GitHub: https://github.com/yangxuan0261/lua-5.1前篇别人写好的 cm.
 的cmake 3.20.1
 测试安装程序构建以运行lua执行,lib和dll文件。 CMake将基于编译工具构建文件,并使用FetchContent获取src文件下载。
 通过使用cmake命令进行构建。
提取文件:
 有两个可以下载。 Github lua和另一个是他们的主要网站lua.org。
 :: Create a build directory
mkdir build 
:: change build directory and get CMakeLists.txt config.
cd build && cmake ..
:: Build the project by default tool compiler to current hardware
cmake --build . 
project(lua)
add_subdirectory(src)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/bin)
include_directories(src)
set(interpreter lua.c)
在vscode上用cmake链接到lua库花了差不多一天时间,简直要崩溃了,现将俩种方法记录下来希望对小伙伴有帮助
find_package
第一种介绍一下用find_package由编译器帮你找到库的位置,这种方法比较适用于你拿到一台陌生的机器,比较方便,他会在环境变量,同级目录中帮你找所需的库和头文件,也可以指定目录。这里就不多介绍,感兴趣的小伙伴可以去官方文档查一下(官方文档)。
cm...
				
项目配置文件CMakeLists.txt:cmake_minimum_required(VERSION 3.0) project(lua)set(LUA_VERSION 5.3.3)if(WIN32) add_definitions("-DLUA_BUILD_AS_DLL") endif(WIN32)aux_source_directory(src LUA_SOURCES) list(REM
本工程是Lua必然C扩展的内置工程,用于运行调试 所有Lua源码来自lua官方网站[ ] 增加了二进制注释,扩展了一些功能,支持Debug / Release编译模式 整个工程PC端编译整合采用cmake来管理,支持跨平台(可以在树莓派上正常cmake + make) 移动端iOS直接调用Xcode工程,Android则提供Android.md使用ndk-build(仅luawithlib库) 如何编译 1.在Mac上采用Xcode编译 cd lua-5.3.5/ mkdir buildXcode && cd buildXcode cmake -DCMAKE_INSTALL_PREFIX=./install -G " Xcode " .. # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/zyk/lua -G "Xcode" 有关安装说明,请参阅安装。 有关自上次发布版本以来的更改摘要,请参阅 HISTORY。 什么是路亚? Lua 是一种功能强大、轻量级的编程语言,专为扩展应用程序而设计。 Lua 也经常用作通用的、独立的语言。 Lua 是免费软件。 有关完整信息,请访问 Lua 的网站 。 有关执行摘要,请参阅 。 Lua 已被用于世界各地的许多不同项目。 有关简短列表,请参阅 。 Lua 可免费用于学术和商业目的。 有关详细信息,请参阅版权和 。 Lua 可以在下载。 Lua 是用纯 ANSI C 实现的,并且在所有具有 ANSI C 编译器的已知平台上未经修改地编译。 在大多数类 Unix 平台中,只需使用合适的目标执行“make”即可。 有关详细说明,请参阅安装。 Lua 是在 Lua.org 开发的,Lua.org 是 PUC-Rio(巴西里约
非常抱歉之前给出了错误的信息。实际上,确实存在一个名为`lua-resty-soap`的OpenResty库,用于处理SOAP请求。你可以在以下地址找到它: https://github.com/bungle/lua-resty-soap 在该页面上,你可以找到关于如何安装和使用`lua-resty-soap`的详细说明。 你可以通过以下方式将`lua-resty-soap`添加到你的OpenResty项目中: 1. 下载`lua-resty-soap`的源码: git clone https://github.com/bungle/lua-resty-soap.git 2. 将`lib/resty`目录中的文件复制到你的OpenResty项目中,例如将它们复制到你的`/path/to/your/project/lib/resty`目录下。 3. 在你的代码中引入`lua-resty-soap`库: ```lua local soap = require("resty.soap") 请注意,使用`lua-resty-soap`库需要安装OpenResty,并在配置文件中正确配置。具体的安装和配置步骤,请参考该库的文档。 希望这次提供的信息对你有所帮助!如果还有其他问题,请随时提问。