2011-06-12 54 views
3

我想在visual studio下編譯Lua 5.2 alpha,但是出現錯誤,我不知道如何解決它們。在VS2010下編譯Lua 5.2 alpha

error LNK1169: one or more multiply defined symbols found 
error LNK2005: _main already defined in lua.obj 

我會很感激,如果任何人都可以指導我通過創建爲lua 5.2 alpha上VS2010解決方案,或點我到相關資源。

在此先感謝。

回答

10

你很可能在一個VS項目中編譯了luac.clua.c。要在VS中自己構建Lua,您需要三個項目:

庫 - 這應該是DLL或靜態庫項目。應該包括除了luac.clua.c之外的src/下的每個.c文件。如果你在嵌入,你只需要這個。

編譯器 - 控制檯可執行文件,包含luac.c

解釋 - 控制檯可執行文件,包含lua.c

+0

準確的信息我一直在尋找,謝謝。 – Raine 2011-06-12 13:55:47

+1

@Raine,這在http://www.lua.org/work/doc/#other中有記錄,它包含在tarball中。 – lhf 2011-06-13 00:05:44

+0

@lhf,謝謝。我正在處理一個.net Lua解釋器,跟隨你的C源代碼。我不得不擱置基於DLR的IronLua。奇怪的是,Lua很難在.net上移植。 – Raine 2011-06-13 08:26:01

1

聽起來像你在其他程序中包含lua.c或luac.c。其中每一個都是一個獨立的程序,都有自己的主程序。你只需要包含其中的一個來構建獨立的Lua組件,或者如果你將Lua嵌入到你自己的應用程序中,那麼也不需要。

0

的Lua的源代碼分發包括控制檯解釋,它已經定義main,你不希望出現這種情況。只需查看Lua源代碼並刪除或註釋掉您找到的main即可。