gpt4 book ai didi

cygwin - 无法让 LuaJIT 使用 cygwin 进行编译

转载 作者:行者123 更新时间:2023-12-04 00:38:05 37 4
gpt4 key购买 nike

我正在尝试在 Windows 上安装最新版本的 LuaJIT。我尽可能按照说明安装 LuaJIT。我安装了 cygwin 和 make 包,打开 cygwin,cd 到解压缩的源文件夹,然后输入 make。我得到这个输出:

$ make
==== Building LuaJIT 2.0.3 ====
make -C src
make[1]: Entering directory '/cygdrive/c/Users/Daniel/Downloads/LuaJIT-2.0.3/LuaJIT-2.0.3/src'
CC lj_alloc.o
lj_alloc.c:249:2: error: #error "NYI: need an equivalent of MAP_32BIT for this 64 bit OS"
#error "NYI: need an equivalent of MAP_32BIT for this 64 bit OS"
^
lj_alloc.c: In function ‘direct_alloc’:
lj_alloc.c:742:5: warning: implicit declaration of function ‘CALL_MMAP’ [-Wimplicit-function-declaration]
char *mm = (char *)(DIRECT_MMAP(mmsize));
^
lj_alloc.c:742:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
char *mm = (char *)(DIRECT_MMAP(mmsize));
^
lj_alloc.c: In function ‘alloc_sys’:
lj_alloc.c:911:18: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
char *mp = (char *)(CALL_MMAP(rsize));
^
lj_alloc.c: In function ‘lj_alloc_create’:
lj_alloc.c:1143:11: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
tbase = (char *)(CALL_MMAP(tsize));
^
Makefile:647: recipe for target 'lj_alloc.o' failed
make[1]: *** [lj_alloc.o] Error 1
make[1]: Leaving directory '/cygdrive/c/Users/Daniel/Downloads/LuaJIT-2.0.3/LuaJIT-2.0.3/src'
Makefile:103: recipe for target 'default' failed
make: *** [default] Error 2

搜索任何这些错误消息都没有结果。我做错了什么?

最佳答案

如果您阅读文档,您会发现目前还不支持 cygwin64,仅支持 32 位。 http://luajit.org/install.html

然而,添加对它的支持看起来并不难。试试看嘛。例如文档建议:

配置 LuaJIT

标准配置应该适用于大多数安装。通常不需要调整设置。以下文件包含所有用户可配置的设置:

src/luaconf.h 设置一些配置变量。

Makefile 具有安装 LuaJIT 的设置(仅限 POSIX)。

src/Makefile 有在 POSIX、MinGW 或 Cygwin 下编译 LuaJIT 的设置。

src/msvcbuild.bat 具有使用 MSVC 或 WinSDK 编译 LuaJIT 的设置。

在更改任何设置之前,请阅读这些文件中的说明。


所以修复 src/Makefile 似乎是最简单的。不幸的是,我现在有点不舒服,现在不能做。我看了一下,这个补丁修复了 CALL_MMAP 问题:
--- src/lj_alloc.c~ 2014-03-23 20:47:09.000000000 -0500
+++ src/lj_alloc.c 2014-03-23 20:47:54.145877000 -0500
@@ -188,7 +188,7 @@
返回指针;
}



-#elif LJ_TARGET_OSX || LJ_TARGET_PS4 ||定义(__FreeBSD__)||定义(__FreeBSD_kernel__)||定义(__NetBSD__)||定义(__OpenBSD__)||定义(__sun__)
+#elif LJ_TARGET_OSX || LJ_TARGET_PS4 ||定义(__FreeBSD__)||定义(__FreeBSD_kernel__)||定义(__NetBSD__)||定义(__OpenBSD__)||定义(__sun__)||定义(__CYGWIN__)

/* OSX 和 FreeBSD mmap() 使用朴素的首次匹配线性搜索。
** 这对我们来说是完美的。除了必须为 OSX 设置 -pagezero_size,

添加 __CYGWIN__ 检查。

现在只有 lj_err_unwind_win64 展开程序未链接。现在是给 Mike Pall 的。不确定 EXT 或 INT 是否合适以及它是如何链接的。

关于cygwin - 无法让 LuaJIT 使用 cygwin 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22536198/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com