使用luajit和lua-iup库进行编译时出错[visual c ++ 2012]

时间:2013-04-18 16:40:28

标签: visual-c++ compilation lua luajit

我用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 ==========

我是否错过了一些libs以及对此的任何想法?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

以下是IUP作者的答案,希望这对遇到与我同样的问题的人有所帮助

  

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