C++ Visual 2010的LUA编译错误;“外部符号”;结构lua“u State*”cdecl luaL“u newstate(void)”;

C++ Visual 2010的LUA编译错误;“外部符号”;结构lua“u State*”cdecl luaL“u newstate(void)”;,c++,visual-studio-2010,lua,C++,Visual Studio 2010,Lua,当我编译下面的代码时,我在VisualStudio2010中使用Luaver5.2.3 #include "stdafx.h" #include "lua.h" #include "lauxlib.h" #include "lualib.h" #include <stdlib.h> #include <stdio.h> void main() { lua_State *luaState = luaL_new

当我编译下面的代码时,我在VisualStudio2010中使用Luaver5.2.3

#include "stdafx.h"

#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
#include <stdlib.h>                          
#include <stdio.h> 

void main()
{
    lua_State *luaState = luaL_newstate();

}
你能给我一些建议吗。 谢谢
?luaL_newstate@@YAPAUlua_State@@XZ
您可以选择:

将此文件的文件扩展名改为.c而不是.cp,以便它通过C编译器而不是C++编译器运行(警告:依赖编译器)

在include周围添加外部“C”,如下所示:

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


在最后一种情况下,该标题包含在5.2版本中。它实现了我在选项2中为您编写的功能

您需要链接到Lua库。我已经链接了Lua库。但是仍然错误请查看此链接:我从源代码(Lua.org)为自己编译了Lua库。我是作为静态库来做的。我成功了。但是链接错误。我认为它来自VisualStudio2010。在Visual2008上,这不会发生。已更新您的问题,以显示链接器配置(可以粘贴vcxproj的XML)和生成时的输出。
extern "C"
{
    #include "lua.h"
    #include "lauxlib.h"
    #include "lualib.h"
}
#include "lua.hpp"