lua-cmake编译cjson库


title: lua-cmake编译cjson库
categories: Lua
tags: [lua, cmake, cjson]
date: 2020-09-01 16:28:49
comments: false
mathjax: true
toc: true

lua-cmake 编译 cjson 库, 这里在 windows 环境下, 使用 clion 工具编译 cjson.

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


前篇

之前有写过用 vs 编译 cjson lua-vs编译lua-cjson的正确姿势.md, 必过 vs 太重了, 用 cmake 还可以跨平台.


流程

  1. 下载 lua-cjson-2.1.0.tar.gz , 地址: https://www.kyne.com.au/~mark/software/lua-cjson.php

  2. 使用 clion 打开工程, 修改 CMakeLists.txt, 增加一个环境变量 LUA_DIR, 路径是 lua 源码路径

    同时把 lua 编译出来的动态库 liblua51.dll 丢带源码路径的上一级 (全路径是 D:/lua-5.1/liblua51.dll, 不太清楚为什么会去上一级找 liblua51.dll, 从 cmake 的日志可以看出来的)

  3. cmake 刷新一下

  4. 构建, build -> build project, 目标文件 cjson.dllcmake-build-debug 目录下

    ====================[ Build | all | Debug ]=====================================
    "D:\JetBrains\CLion 2019.3.3\bin\cmake\win\bin\cmake.exe" --build C:\Users\wolegequ\Desktop\lua-cjson-2.1.0\cmake-build-debug --target all -- -j 4
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/Users/wolegequ/Desktop/lua-cjson-2.1.0/cmake-build-debug
    [100%] Linking C shared module cjson.dll
    [100%] Built target cjson
    
    Build finished
    
    • 测试一下构建出的 cjson.dll, 需要用构建 liblua51.dll 库的工程构建出来的 lua.exe 去执行, 才不会报错: error loading module 'cjson' from file 不是有效的 Win32 应用程序

      测试代码, 先将 cjson.dll 丢到 测试脚本所在目录的 lib 目录下 (因为会去这里找 动态库)

      -- 添加搜索路径
      local path = debug.getinfo(1, "S").source
      path = string.sub(path, 2, -1) -- 去掉开头的"@"
      path = string.gsub(path, '\\', '/')
      path = string.match(path, "(.*)/") -- 当前脚本所在的路径
      luapath = path .. "/?.lua"
      cpath = path .. "/lib/?.dll"
      package.path = package.path .. ";" .. luapath
      package.cpath = package.cpath .. ";" .. cpath
      
      local cjson = require "cjson"
      local tbl = {
          aaa = 123,
          bbb = "world",
          ccc = true,
      }
      
      print("--- lua version:", _VERSION)
      print("--- json:", cjson.encode(tbl))
      

      结果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝶泳奈何桥.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值