C++;将lua 5.2未定义的引用嵌入到'luaL_newstate';(ubuntu 14.04,Netbeans) 我尝试将Lua嵌入C++中,每次尝试编译时,都会得到这个错误: /root/NetBeansProjects/test/main.cpp:20: undefined reference to `luaL_newstate' /root/NetBeansProjects/test/main.cpp:31: undefined reference to `lua_settop' /root/NetBeansProjects/test/main.cpp:35: undefined reference to `luaL_loadfilex' /root/NetBeansProjects/test/main.cpp:35: undefined reference to `lua_pcallk' /root/NetBeansProjects/test/main.cpp:38: undefined reference to `lua_close'
我已经找了几个小时的解决方案,但找不到任何有用的 我安装了Lua:apt获取安装lua5.2 lua5.2-dev 这是我的密码:C++;将lua 5.2未定义的引用嵌入到'luaL_newstate';(ubuntu 14.04,Netbeans) 我尝试将Lua嵌入C++中,每次尝试编译时,都会得到这个错误: /root/NetBeansProjects/test/main.cpp:20: undefined reference to `luaL_newstate' /root/NetBeansProjects/test/main.cpp:31: undefined reference to `lua_settop' /root/NetBeansProjects/test/main.cpp:35: undefined reference to `luaL_loadfilex' /root/NetBeansProjects/test/main.cpp:35: undefined reference to `lua_pcallk' /root/NetBeansProjects/test/main.cpp:38: undefined reference to `lua_close',c++,netbeans,lua,C++,Netbeans,Lua,我已经找了几个小时的解决方案,但找不到任何有用的 我安装了Lua:apt获取安装lua5.2 lua5.2-dev 这是我的密码: #include <cstdlib> #include <iostream> #include <string.h> #include <string> #include <lua5.2/lua.hpp> using namespace std; int main() { // create new
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <string>
#include <lua5.2/lua.hpp>
using namespace std;
int main() {
// create new Lua state
lua_State *lua_state;
lua_state = luaL_newstate();
// load Lua libraries
static const luaL_Reg lualibs[] ={
{ "base", luaopen_base},
{ NULL, NULL}
};
const luaL_Reg *lib = lualibs;
for (; lib->func != NULL; lib++) {
lib->func(lua_state);
lua_settop(lua_state, 0);
}
// run the Lua script
luaL_dofile(lua_state, "test.lua");
// close the Lua state
lua_close(lua_state);
return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main(){
//创建新的Lua状态
卢厄州*卢厄州;
lua_state=luaL_newstate();
//加载Lua库
静态常数luaL_Reg lualibs[]={
{“base”,luaopen_base},
{NULL,NULL}
};
常量luaL_Reg*lib=lualibs;
对于(;lib->func!=NULL;lib++){
lib->func(lua_状态);
lua_settop(lua_状态,0);
}
//运行Lua脚本
luaL_dofile(lua_state,“test.lua”);
//关闭Lua状态
lua_关闭(lua_州);
返回0;
}
我做错了什么?首先感谢大家在这方面的帮助 根据我的评论,编译器将在Netbeans内部失败,除非该库实际添加到项目中 要在Netbeans内部纠正此问题,请右键单击项目(左窗格)->属性->构建下拉列表->链接器->单击库旁边的三个点->添加PkgConfig库文件->Lua5.2
您的程序现在应该可以正确编译,生活也会很好。定位lua.hpp显示了什么?<代码> NETBease>工具>选项> C++编译器>包含目录:< /Cord>列出包含“代码> Lua5.2/Lua.Hpp的目录?查找LUAHPP(find /No.Lua.HPP)不返回任何东西……这可能是一场灾难problem@FortuneCookie101:编译器可能会抱怨缺少包含文件(
locate
在使用安装的lua5.2-dev
更新数据库之前不会找到它)。当我尝试查找liblua.a或时,您需要使用-llua
@siffiejoe链接到liblua.a
(或liblua.so
)。因此搜索没有结果,Netbeans不会抱怨包含丢失,所以我不知道发生了什么。如果我尝试使用-llua手动构建,它会抱怨找不到它。我刚找到一个名为liblua5.2的包,所以我也安装了它,-llua现在可以工作了,但是仍然没有运气。编译器继续抱怨未定义的引用。