在我的ubuntu 14.xx中,我尝试编译lsnes模拟器以使用aleju/mario-ai中的mario-ai脚本,并且我已尝试使用google许多解决方案来解决以下问题:
make [3]:
__all__.files' is up to date. make[3]: Leaving directory
/ home / pengsuyu / software / lsnes / sourcecode / src / platform / macosx' make [2]:离开目录/home/pengsuyu/software/lsnes/sourcecode/src/platform' g++ -o lsnes
cat all_common .files all_platform .files-pthread -lboost_iostreams -lboost_filesystem -lboost_system -lz -lgcrypt -lgpg-error -L/usr/lib/x86_64-linux-gnu -lcurl -rdynamic -ldl
cat core / all 。 ldflags lua / 全部 .ldflags字体/ 全部 .ldflags库/ 全部 .ldflags接口/ 全部 .ldflags视频/all.ldflags emulation / all .ldflags cmdhelp / all .ldflags platform / all .ldflags {{1 lua :: state :: get_string(int,std :: string const&)': /home/pengsuyu/software/lsnes/sourcecode/src/core/../../include/library/lua-base.hpp:317:对core/multitrack.o: In function
的未定义引用lua :: state :: get_bool(int ,std :: string const&)': /home/pengsuyu/software/lsnes/sourcecode/src/core/../../include/library/lua-base.hpp:334:未定义引用lua_tolstring' core/multitrack.o: In function
lua :: state :: type(int )&#39 ;: 。 。 /home/pengsuyu/software/lsnes/sourcecode/src/library/lua.cpp:536:对lua_toboolean' core/multitrack.o: In function
的未定义引用lua :: state :: pushcfunction(int()(lua_State ) )&#39 ;: /home/pengsuyu/software/lsnes/sourcecode/src/library/../../include/library/lua-base.hpp:504:对lua_close' library/lua.o: In function
的未定义引用lua :: state :: getfield(int ,char const *)': /home/pengsuyu/software/lsnes/sourcecode/src/library/../../include/library/lua-base.hpp:506:对lua_pushcclosure' library/lua.o: In function
的未定义引用lua :: state :: insert(int )&#39 ;: /home/pengsuyu/software/lsnes/sourcecode/src/library/../../include/library/lua-base.hpp:509:对lua_getfield' library/lua.o: In function
/ home / pengsuyu / software / lsnes /的未定义引用源码/ SRC' make:*** [src / all_files ]错误2
一开始,我认为,链接器找不到我的lua库。所以我试着用test.lua编译我的main.cpp。
main.cpp中:
lua_insert'
collect2: error: ld returned 1 exit status
make[1]: *** [lsnes] Error 1
make[1]: Leaving directory
test.lua:
#include <stdio.h>
#include <iostream>
//extern "C"
//{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
//} // liblua5.1-c++.a
lua_State * L;
int main ()
{
L = lua_open();
luaL_openlibs(L);
luaL_dofile(L, "d:\\test.lua");
return 0;
}
我编写一个MakeFile来生成可执行文件&#34; main&#34;:
print("Hello World");
当我添加编译选项&#34; -llua5.1&#34;和&#34; -lstdc ++&#34;否则它会抛出与编译lsnes
相同的错误我不熟悉gcc和Makefile。请帮我解决这个问题。
答案 0 :(得分:0)
解决此问题的方法只是更改名为“options.build”的文件中的一行。
1. find the line "LUA=lua" in options.build
2. change this line to "LUA=lua5.1"
因为所需的库是5.1,所以如果你想成功构建它,你必须使用“lua5.1”库,但是默认配置是“lua”而不是“lua5.1”