Windows 如何编译srlua(或指向二进制文件的链接)

Windows 如何编译srlua(或指向二进制文件的链接),windows,lua,compilation,Windows,Lua,Compilation,相关: 第一个环节正是我在这里要问的问题。然而,唯一的答案并不令人满意,因为它假设了多种情况,即OP已经在使用Cmake(OP对答案的评论推翻了这一事实)。第二个链接似乎已经是教程的大部分内容,虽然提供了指向srlua.exe和srglue.exe的预编译二进制文件的链接,但该链接不再包含二进制文件,而是包含源代码 我在各种网站上发现了其他几个帖子,它们都在问同样的问题,但它们要么假设你基本上已经知道怎么做,要么什么也不解释(许多帖子都有可能有用的链接,但它们都是旧的,不再有效) 我已经尝试

相关:

第一个环节正是我在这里要问的问题。然而,唯一的答案并不令人满意,因为它假设了多种情况,即OP已经在使用Cmake(OP对答案的评论推翻了这一事实)。第二个链接似乎已经是教程的大部分内容,虽然提供了指向srlua.exe和srglue.exe的预编译二进制文件的链接,但该链接不再包含二进制文件,而是包含源代码

我在各种网站上发现了其他几个帖子,它们都在问同样的问题,但它们要么假设你基本上已经知道怎么做,要么什么也不解释(许多帖子都有可能有用的链接,但它们都是旧的,不再有效)

我已经尝试编译srlua,并得到了一个srglue.exe,但是当我尝试srlua.c时,我得到了一个未定义引用的列表(例如“lua_type”或“lua_getfield”)

我的问题是:
如何使用C编译器(我知道gcc的基本知识)专门编译srlua?或者,如果任何人有一个指向预编译二进制文件或编译二进制文件的工具的功能链接,他们可以共享它吗


重要信息:我在Windows上。因此,我不能只使用
make
。我必须把.c文件编译成.exe文件。我在问怎么做。如果您只是提供指向具有上述问题的线程的链接,那么您就没有帮助。如果您给出的答案假设您对某个特定工具有深入的先验知识,而该工具没有良好的文档,那么您就没有帮助。如果您告诉我要使用的工具,而不是编译srlua的具体过程,那么您就没有什么帮助。如果有更好的地方,请告诉我,我可以把它移到那里。

我不知道任何用于srLua的Windows预编译二进制文件

要编译srLua,您应该首先安装Mingw编译器,将GCC用作C编译器:您可以安装TDM-GCC()或

然后可以打开控制台提示符。输入“gcc”命令以确保编译器正在工作(并且路径设置正确)

然后转到提取srLua源文件的目录,并键入以下命令:

mingw32-make
交叉你的手指,它应该编译所有内容:)


链接时,应包括带有-l开关的Lua库,例如,Lua 5.4库的-llua54。

您需要将srlua.obj链接到Lua库。如果将Lua库作为DLL,则可能需要将该DLL放在同一文件夹中。很抱歉,我无法为您提供更精确的Windows说明。我没有srlua.obj。我应该从srlua.c中创建它吗?您使用的是什么gcc命令行?我使用的是TDM-gcc(不是Mingw)。好的,当我执行
Mingw make./srglue
时,我得到了srglue.exe。一切都很好。但是,对
/srlua
执行相同的操作会导致与我之前得到的错误相同的错误(未定义的引用)。我不想手动将数百个Lua库文件(其中许多文件的名称相互冲突)复制到我的srlua目录中,也不想链接每一个文件,那么Makefile中有没有链接到库的方法呢?我已经编辑了Makefile,为它提供了我的Lua目录,并复制了所有的/lib和/include。提供的Makefile仅针对Unix系统,因此出现错误。您必须使用解包LUA归档文件的路径修改行LUA=。然后拆下行LIBS=上的-ldl开关,并将-llua替换为-llua54。最后删除chmod+x行、clean行和rm行。即使在完成所有这些步骤(我已经纠正了路径)之后,我仍然会得到相同的“未定义引用”错误。安装“功能”可能有问题吗?
mingw32-make