2013-03-02 47 views
1

我想用Visual C++ 2010與嵌入式Lua引擎做一個遊戲,但我一直運行到持久無法解析的外部符號錯誤。我將所有文件的副本放在項目頭文件夾中的'include'文件夾中,然後嘗試將鏈接程序庫路徑設置爲Lua lib文件夾,並將include路徑設置爲Lua include文件夾,但我仍然得到錯誤,指出幾個Lua核心功能的使用尚未解決。我已經嘗試了很多在互聯網上發佈的解決方案,並且每個解決方案都導致了相同的錯誤。C++未解析的外部符號嵌入式Lua

輸出:

1>Main.obj : error LNK2019: unresolved external symbol _lua_pcall referenced in function _main 
1>Main.obj : error LNK2019: unresolved external symbol _luaL_loadfile referenced in function _main 
1>Main.obj : error LNK2019: unresolved external symbol _luaL_newstate referenced in function _main 

Main.cpp的:

#include "stdafx.h" 
#include "Bubble Wars.h" 

extern "C" { 
#include "lua.h" 
#include "lualib.h" 
#include "lauxlib.h" 
#include "luaconf.h" 
#include "lua.hpp" 
} 

int main() 
{ 
    lua_State * L = lua_open(); 
    luaL_dofile(L,"C:/Users/Trevor/Documents/Visual Studio 2010/Projects/Bubble Wars/Bubble Wars/Main.lua"); 
    return 0; 
} 

Main.cpp的是包含任何Lua中引用的唯一來源文件。函數引用的任何原因都未解決?

+2

這通常意味着,您沒有鏈接到'.lib'(或者.a)文件。檢查你的makefile以確保它也被鏈接。 – 2013-03-02 17:32:09

+0

@RefugnicEternium我如何確保它被鏈接到?我習慣於直接製作劇本,主要是在Lua中。我還不完全熟悉IDE,比如Visual C++。 – MettaurSp 2013-03-02 17:55:05

+0

恐怕這是非常特定的編譯器。對於Borland,你只需'將lib添加到項目'中,對於需要添加'-llibrarynamehere'的gcc makefile(這不是一個錯字,它真的需要用'-l'作爲前綴。 – 2013-03-02 18:00:16

回答

3

除了設置鏈接程序目錄之外,還需要提供鏈接到鏈接程序的實際庫。