0

我用 luajit 和 lua-iup 编写了一个应用程序,并将我的应用程序与静态库链接起来。但我收到以下错误:

------ Build started: Project: ConsoleApplication1, Configuration: Release Win32 ------
     Creating library C:\Users\root\Documents\Visual Studio 2012\Projects\ConsoleApplication1\Release\ConsoleApplication1.lib and object C:\Users\root\Documents\Visual Studio 2012\Projects\ConsoleApplication1\Release\ConsoleApplication1.exp
iup.lib(iupwindows_main.obj) : error LNK2001: unresolved external symbol _main
C:\Users\root\Documents\Visual Studio 2012\Projects\ConsoleApplication1\Release\ConsoleApplication1.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我是否缺少一些库以及对此有何想法?

4

2 回答 2

1

这是IUP作者的答案,希望对遇到和我一样问题的人有所帮助

您似乎正在构建一个控制台应用程序。这意味着您需要一个“主要”功能。如果您尝试在没有控制台的情况下构建 Windows 应用程序,那么 IUP 将为您实现 WinMain 函数并调用您的“main”函数。在这两种情况下,您都需要“主要”功能。

于 2013-04-21T09:37:58.027 回答
1

据我所知,IUP 的 Lua 绑定部分是用 Lua 编写的。这通常不是问题,除了 Lua 部分作为预编译字节码编译到库中。Lua 字节码和 LuaJIT 字节码是不同的。

正确的答案是更改 IUP 以便它使用编译的 Lua 源而不是字节码来构建。可以想象,这会减慢 IUP 应用程序的启动速度,但它会使交叉编译 IUP 变得更容易,并使得使用 LuaJIT 代替标准 Lua 成为可能。

于 2013-04-18T21:55:36.013 回答