這是我發現自己無法使用我的普通搜索/堆棧溢出/ youtubing例程的底部的第一個問題。將Lua for Windows安裝到C++程序中遇到問題
我想編譯一個C++環境中的最小Lua程序,以確保我的環境已準備好開發。 Lua語言稍後將用於我的C++遊戲的用戶界面編程。
首先在我的環境中的一些基本信息:
的Windows 7 64位
Visual Studio 2010中
的Lua爲Windows 5.1(我可以從谷歌代碼下載最新的版本)
以下是我正在編譯的代碼:
// UserInt.cpp : Defines the entry point for the console application.
//
#pragma comment(lib,"lua5.1.dll")
#include "stdafx.h"
#ifndef __LUA_INC_H__
#define __LUA_INC_H__
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
int _tmain(int argc, _TCHAR* argv[])
{
lua_State * ls = luaL_newstate();
return 0;
}
#endif // __LUA_INC_H__
這裏是我得到的錯誤:不再使用,所以我嘗試了newstate功能
我看了一下lua_open()(和一些其他功能):
1>UserInt.obj : error LNK2019: unresolved external symbol _luaL_newstate referenced in function _wmain 1>c:\users\deank\documents\visual studio 2010\Projects\UserInt\Debug\UserInt.exe : fatal error LNK1120: 1 unresolved externals
事情我已經試過代替。我犯了同樣的錯誤。這比任何事情都更符合健康檢查。我使用5.1而不是5.2,所以我不認爲這真的很重要。
我也讀過這個線程Cannot link a minimal Lua program,但它似乎並沒有幫助我,因爲我沒有運行與OP相同的環境。我在一個簡單的Windows 7和Visual Studio環境。
頂部附註註釋行是我在另一個線程中看到的。不管有沒有,我都會得到相同的錯誤。
我已經進入了我的visual studio C++目錄區,並將lua include添加到了libraries和lua lib庫中。
因此,看起來我的程序看到.h並看到符號。但由於某些原因,它沒有得到功能的.cpp實現。這就是爲什麼我希望直接包含該.dll將有助於解決問題,但它沒有。
所以,我覺得我已經用盡了所有的選擇來解決這個問題。我希望有人能夠幫助我在這裏前進。 Lua看起來像是一種非常棒的語言,我希望讓自己的環境擺脫困境以求發展。
我希望這只是我的一些愚蠢的錯誤。我相信我儘可能提供了儘可能多的信息。如果你需要更多的細節,我會更新信息,如果我能提供。
EDIT1
試圖在這個Can't build lua a project with lua in VS2010, library issue suspected
的解決方案,也不能工作。
那麼,你得到我的投票。添加.lib的確有竅門。但我現在更加好奇你的步驟來添加實際的源代碼。這似乎是一個更好的解決方案。我可以將所有的.h和.c(除了luac.c)添加到我的項目中,它應該等於取決於庫的權利?我應該能夠保持我的應用程序完好無損,只需添加一個「Lua」過濾器來隱藏所有這些文件......如果我理解正確。 我只是想能夠執行lua腳本C++ - 端用於UI加載。 另外,如果可以的話,我會加倍努力。沒有足夠的代表這樣做。 – 2012-08-06 22:14:18
是的,幾乎所有你寫的,只是稍作修改。要將Lua嵌入到您的應用程序中,您不會將lua.c(除了已提及的luac.c)添加到您的項目中。 lua.c文件具有它自己的main(),它可以處理控制檯(獲取一行文本並顯示結果),這在您的應用程序中可能不需要。 – PaulPerry 2012-08-06 22:34:07
這正是我想要的。謝謝! 110%滿意答案。 – 2012-08-06 23:10:42