gpt4 book ai didi

c++ - Visual 2010 的 LUA 编译错误 "external symbol "struct lua_State * __cdecl luaL_newstate(void)”

转载 作者:行者123 更新时间:2023-11-30 02:47:23 24 4
gpt4 key购买 nike

我在 visual studio 2010 中使用 Lua ver 5.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();

}

我遇到了错误

error LNK2019: unresolved external symbol "struct lua_State * __cdecl luaL_newstate(void)" (?luaL_newstate@@YAPAUlua_State@@XZ) referenced in function _wmain

你能给我一些关于这方面的建议吗?谢谢!!!

最佳答案

这是 C++“名称修改”的结果。看看这个词怎么有奇怪的字符:

?luaL_newstate@@YAPAUlua_State@@XZ

你有选择:

将此文件的文件扩展名更改为 .c 而不是 .cpp,以便它通过 C 编译器而不是 C++ 编译器运行(注意:取决于编译器)

像这样在 include 周围添加 extern "C":

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

#include "lua.hpp"

在最后一种情况下,该 header 包含在 5.2 版本中。它执行我在选项 2 中为您编写的内容。

关于c++ - Visual 2010 的 LUA 编译错误 "external symbol "struct lua_State * __cdecl luaL_newstate(void)”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22813642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com