我的目标是在 Windows 10(64 位)上安装带有 luarocks 的 cjson,到目前为止我所做的:
尝试通过 make 安装:
- 将此luajit 安装放在路径“C:\torch”上并手动设置以下所有路径变量(请参阅问题)
- 路径 = "C:\torch\bin;"%PATH%
- LUA_CPATH="C:\torch\bin\?.dll;;"
- LUA_DEV="C:\火炬;"
- LUA_PATH="C:\torch\lua\?;C:\torch\lua\?.lua;C:\torch\lua\?\init.lua;;"
- 将此版本的lua-cjson-2.1.0放在以下文件夹中:“C:\Users\username\Desktop\lua-cjson-2.1.0”
- 使用 make 版本 3.81、cmake 3.13.2 安装 mingw 并将“C:\MinGW\msys\1.0\bin\”和“C:\Program Files\CMake\bin\”添加到 Path 变量
- 取消注释 Windows(MingGW) 的变量并在 lua-cjson-2.1.0 的 Makefile 中设置 PREFIX = C:\torch\
- 通过 admin-shell 转到“C:\Users\username\Desktop\lua-cjson-2.1.0”
- “ make install ” 产生以下输出:
cc -c -O3 -Wall -pedantic -DNDEBUG -IC:\torch CJSON_CFLAGS = -DDISABLE_INVALID_NUMBERS/include -fpic -o lua_cjson.o lua_cjson.c
make: cc: Command not found
make: *** [lua_cjson.o] Error 127`
使用 luarocks 的另一次尝试也不起作用:
- 调用 ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64"
- 然后按照cjson-manual中的描述调用“ luarocks make ”
- 这会产生以下输出:
cl /nologo /MD /O2 -c -Folua_cjson.obj -IC:/torch/include lua_cjson.c -DDISABLE_INVALID_NUMBERS lua_cjson.c
cl /nologo /MD /O2 -c -Fostrbuf.obj -IC:/torch/include strbuf.c -DDISABLE_INVALID_NUMBERS strbuf.c
strbuf.c(98): warning C4311: "type conversion": pointer truncation from "strbuf_t *" to "long"
strbuf.c(172): warning C4311: "type conversion": pointer truncation from "strbuf_t *" to"long"
cl /nologo /MD /O2 -c -Fofpconv.obj -IC:/torch/include fpconv.c -DDISABLE_INVALID_NUMBERS fpconv.c
link -dll -def:cjson.def -out:cjson.dll C:/torch/lib/libluajit.lib lua_cjson.obj strbuf.obj fpconv.obj
Microsoft (R) Incremental Linker Version 14.10.25019.0
Copyright (C) Microsoft Corporation. All rights reserved.
Bibliothek "cjson.lib" und Objekt "cjson.exp" werden erstellt.
lua_cjson.obj : error LNK2019: Reference to unresolved external symbol "strncasecmp" in function "json_is_invalid_number".
cjson.dll : fatal error LNK1120: 1 nicht aufgelöste Externe
Error: Build error: Failed compiling module cjson.dll`
安装过程有什么问题?