这是我发现自己不能使用我的正常使用/堆栈溢出/ youtubing例程的底部的第一个问题。
我正在尝试在C ++环境中编译一个最小的Lua程序,以确保我的环境已经准备好开发。 Lua语言稍后将用于我的C ++游戏的用户界面编程。
Windows 7 64位
Visual Studio 2010
适用于Windows 5.1的Lua(最新版本,我可以从谷歌代码下载)
// 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__
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
我已经阅读了关于lua_open()(和其他几个函数)不再被使用,所以我尝试了newstate函数。 我犯了同样的错误。 这比任何事情都更为合理。 我使用5.1而不是5.2,所以我不认为这真的很重要。
我也读过这个线程不能链接一个最小的Lua程序,但它似乎并没有帮助我,因为我没有运行与OP相同的环境。 我在一个简单的Windows 7和Visual Studio环境。
顶部的编译注释行是我在另一个线程中看到的。 不pipe有没有,我都会得到相同的错误。
我已经进入了我的Visual Studio C ++目录区域,并将lua include添加到libraries和lua lib中。
因此,我的程序看起来像是看到了符号。 但由于某些原因,它没有得到.cpp实现的function。 这就是为什么我希望包括这个.dll直接帮助解决这个问题,但它没有。
所以,我觉得我已经用尽了所有的select来解决这个问题。 我希望有人能够帮助我在这里前进。 Lua看起来像是一个非常棒的语言,我想让我的环境摆脱困境。
我希望这只是我的一些愚蠢的错误。 我相信我已经提供了尽可能多的信息。 如果你需要更多的细节,我会更新信息,如果我能提供。
试了这个解决scheme在VS2010中不能用luabuild立lua项目,怀疑是库问题
那也行不通。
你需要有库(.LIB)文件,并将其添加到VS. 使用“项目”>“属性”,然后转到“链接器”>“输入”,并将完整的.lib文件名添加到“其他依赖项”行。 请注意.LIB与.DLL不同。
就个人而言,我更喜欢通过引用动态链接库将源代码添加到我的项目中。 下面的程序会让你这样做。
下载源代码( http://www.lua.org/ftp/ ),解压缩。
在Visual Studio中,选择“文件”>“新建”>“项目”,然后选择“Visual C ++,Win32,Win32控制台应用程序”。
在您的Visual Studio项目中,添加除luac.c之外的所有源代码。 同时删除VS为你创建的文件中的main()函数。 通常会给出您用.cpp文件扩展名指定的项目的名称。 你可以从项目中一起删除这个文件。
建立和运行。
这是Lua控制台