window下载安装lua-cjson环境

本文档详细介绍了如何在Windows上下载并配置Lua环境,包括lua和lua-cjson的安装步骤。首先,从lua官网下载并配置lua环境变量,然后从LuaRocks下载cjson,并将其放在mingw环境中进行编译。最后,通过mingw的make工具生成cjson.dll,并将其放置在lua的bin目录下,完成lua-cjson的安装。这使得用户能够使用lua处理和操作JSON数据。

1.下载lua并且配置lua环境 lua官网:http://www.lua.org/download.html

 

 

下载这两个文件 并且解压 配置环境变量

 

 

配置完lua环境变量后  win+r快捷键 黑窗口输出 lua(如果是54版本输入lua54) 

2.下载lua-cjson  cjson官网:LuaRocks - The Lua package manager 

 

 

 

把这个路径复制  粘贴到网址上面 下载一个zip文件 解压 ,我放到了D盘

3.下载mingw make cjson文件 mingw下载地址:MinGW-w64 - for 32 and 64 bit Windows - Browse /mingw-w64 at SourceForge.net 

下载完mingw解压 并且配置环境 

 

 

 

 

 打开lua文件  打开lua-5.4.2_WIN64_dllw6_lib

 

把这个lua54.dll 放大mingw/lib下

 

在将 lua-5.4.2_Win64_dllw6_lib/include下的所有文件放到 mingw/include下

 

打开 上一步下载的cjson文件 修改MakeFile文件 如下图:

 

 

##### Available defines for CJSON_CFLAGS #####
##
## USE_INTERNAL_ISINF:      Workaround for Solaris platforms missing isinf().
## DISABLE_INVALID_NUMBERS: Permanently disable invalid JSON numbers:
##                          NaN, Infinity, hex.
##
## Optional built-in number conversion uses the following defines:
## USE_INTERNAL_FPCONV:     Use builtin strtod/dtoa for numeric conversions.
## IEEE_BIG_ENDIAN:         Required on big endian architectures.
## MULTIPLE_THREADS:        Must be set when Lua CJSON may be used in a
##                          multi-threaded application. Requries _pthreads_.

##### Build defaults #####
LUA_VERSION =       5.4
TARGET =            cjson.so
PREFIX =            D:/
#CFLAGS =            -g -Wall -pedantic -fno-inline
CFLAGS =            -O3 -Wall -pedantic -DNDEBUG
CJSON_CFLAGS =      -fpic
CJSON_LDFLAGS =     -shared
LUA_INCLUDE_DIR =   $(PREFIX)/include
LUA_CMODULE_DIR =   $(PREFIX)/lib/lua/$(LUA_VERSION)
LUA_MODULE_DIR =    $(PREFIX)/share/lua/$(LUA_VERSION)
LUA_BIN_DIR =       $(PREFIX)/bin

##### Platform overrides #####
##
## Tweak one of the platform sections below to suit your situation.
##
## See http://lua-users.org/wiki/BuildingModules for further platform
## specific details.

## Linux

## FreeBSD
#LUA_INCLUDE_DIR =   $(PREFIX)/include/lua51

## MacOSX (Macports)
#PREFIX =            /opt/local
#CJSON_LDFLAGS =     -bundle -undefined dynamic_lookup

## Solaris
CC           =      gcc
#CJSON_CFLAGS =      -fpic -DUSE_INTERNAL_ISINF
## Windows (MinGW)
TARGET =            cjson.dll
PREFIX =            D:\lua\lua-5.4.2_Win64_bin
CJSON_CFLAGS =      -DDISABLE_INVALID_NUMBERS
CJSON_LDFLAGS =     -shared -L$(PREFIX)/lib -llua54
LUA_BIN_SUFFIX =    .lua


##### Number conversion configuration #####

## Use Libc support for number conversion (default)
FPCONV_OBJS =       fpconv.o

## Use built in number conversion
#FPCONV_OBJS =       g_fmt.o dtoa.o
#CJSON_CFLAGS +=     -DUSE_INTERNAL_FPCONV

## Compile built in number conversion for big endian architectures
#CJSON_CFLAGS +=     -DIEEE_BIG_ENDIAN

## Compile built in number conversion to support multi-threaded
## applications (recommended)
#CJSON_CFLAGS +=     -pthread -DMULTIPLE_THREADS
#CJSON_LDFLAGS +=    -pthread

##### End customisable sections #####

TEST_FILES =        README bench.lua genutf8.pl test.lua octets-escaped.dat \
                    example1.json example2.json example3.json example4.json \
                    example5.json numbers.json rfc-example1.json \
                    rfc-example2.json types.json
DATAPERM =          644
EXECPERM =          755

ASCIIDOC =          asciidoc

BUILD_CFLAGS =      -I$(LUA_INCLUDE_DIR) $(CJSON_CFLAGS)
OBJS =              lua_cjson.o strbuf.o $(FPCONV_OBJS)

.PHONY: all clean install install-extra doc

.SUFFIXES: .html .txt

.c.o:
	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(BUILD_CFLAGS) -o $@ $<

.txt.html:
	$(ASCIIDOC) -n -a toc $<

all: $(TARGET)

doc: manual.html performance.html

$(TARGET): $(OBJS)
	$(CC) $(LDFLAGS) $(CJSON_LDFLAGS) -o $@ $(OBJS)

install: $(TARGET)
	mkdir -p $(DESTDIR)/$(LUA_CMODULE_DIR)
	cp $(TARGET) $(DESTDIR)/$(LUA_CMODULE_DIR)
	chmod $(EXECPERM) $(DESTDIR)/$(LUA_CMODULE_DIR)/$(TARGET)

install-extra:
	mkdir -p $(DESTDIR)/$(LUA_MODULE_DIR)/cjson/tests \
		$(DESTDIR)/$(LUA_BIN_DIR)
	cp lua/cjson/util.lua $(DESTDIR)/$(LUA_MODULE_DIR)/cjson
	chmod $(DATAPERM) $(DESTDIR)/$(LUA_MODULE_DIR)/cjson/util.lua
	cp lua/lua2json.lua $(DESTDIR)/$(LUA_BIN_DIR)/lua2json$(LUA_BIN_SUFFIX)
	chmod $(EXECPERM) $(DESTDIR)/$(LUA_BIN_DIR)/lua2json$(LUA_BIN_SUFFIX)
	cp lua/json2lua.lua $(DESTDIR)/$(LUA_BIN_DIR)/json2lua$(LUA_BIN_SUFFIX)
	chmod $(EXECPERM) $(DESTDIR)/$(LUA_BIN_DIR)/json2lua$(LUA_BIN_SUFFIX)
	cd tests; cp $(TEST_FILES) $(DESTDIR)/$(LUA_MODULE_DIR)/cjson/tests
	cd tests; chmod $(DATAPERM) $(TEST_FILES); chmod $(EXECPERM) *.lua *.pl

clean:
	rm -f *.o $(TARGET)

打开你的cjson路径 输入cmd

 在源码路径下, cmd命令终端执行: mingw32-make
 执行命令: dir *.dll
 拷贝源码路径下的 cjson.dll 到 lua-5.4.2_Win64_bin 下

到这里lua-cjson就安装完毕 可以操作json数据了

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值