2017-03-29 9 views
0

私のubuntu 14.xxでは、lsnesエミュレータをaleju/mario-aiのmario-aiスクリプトを使用してコンパイルしようとしました。 :残すディレクトリ:[2]を作る 「__all__.files' is up to date. make[3]: Leaving directory /ホーム/ pengsuyu /ソフトウェア/ lsnes /ソースコード/ SRC /プラットフォーム/ MacOSXの: lsnesをビルドするときに "undefined lua_xxxxx"というリンクエラーが発生しました

[3]します:ここで

は、コンソールから出力され/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猫のコア/ すべて .ldflagsのLUA/すべて .ldflagsフォント/すべては、ビデオ/ すべて .ldflagsエミュレーションを.ldflags すべて .ldflagsライブラリ/ すべて .ldflagsインターフェース//すべて。 LDFLAGSのcmdhelp/すべて .ldflagsプラットフォーム/ すべて .ldflags core/multitrack.o: In function LUA ::状態:: get_string(int型、のstd ::文字列のconst &) ': /ホーム/ pengsuyu /ソフトウェア/ lsnes /ソースコード/ SRC /コア/../../include/library/lua-base.hpp:317 :未定義lua_tolstring' core/multitrack.o: In function LUAへの参照::状態:: get_bool(int型、のstd ::文字列のconst &) ': /home/pengsuyu/software/lsnes/sourcecode/src/core/../../include/library/ lua-base.hpp:334:lua_toboolean' core/multitrack.o: In functionへの未定義の参照lua :: state :: type(int) ': 。 。 /home/pengsuyu/software/lsnes/sourcecode/src/library/lua.cpp:536:lua_close' library/lua.o: In function LUA ::状態:: pushcfunction(int型()(lua_State))」に未定義の参照: /ホーム/ pengsuyu /software/lsnes/sourcecode/src/library/../../include/library/lua-base.hpp:504:lua_pushcclosure' 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_getfield' library/lua.o: In functionルア::状態::挿入(int) ': /home/pengsuyu/software/lsnes/sourcecode/src/library/../../include/library/lua-base.hpp:509:未定義の参照lua_insert' collect2: error: ld returned 1 exit status make[1]: *** [lsnes] Error 1 make[1]: Leaving directory/home/pengsuyu/software/lsnes/sourcecode/src ' make:*** [src/all_files]でエラー2

==================================

リンカは私のluaライブラリを見つけることができません。だから私はtest.luaでmain.cppをコンパイルしようとしました。

main.cppに:

#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; 
} 

がtest.lua:とき、私それが動作

main:main.o 
    gcc -o [email protected] $< -llua5.1 -lstdc++ 
main.o: 
    gcc -c main.cpp 
clean: 
    -rm *.o 

print("Hello World"); 

私は実行ファイル "メイン" を生成するMakefileを書きますコンパイルオプション "-llua5を追加してください。私はlsnesに

をコンパイルしたとして1" と 『-lstdC++』、それ以外の場合は、私はgccとMakefileのに慣れていない午前、同じエラーがスローされます。この問題を解決するために私を助けてください。

答えて

0

私は私の質問

を解決してきました

この問題を解決するための方法は、単に「options.build」という名前のファイルに1行を変更することです。

1. find the line "LUA=lua" in options.build 

2. change this line to "LUA=lua5.1" 

あなたは成功し、それを構築したい場合は、あなたが使用する必要がありますので、必要なライブラリは、5.1であるため、ただし、 "lua5.1"ライブラリはデフォルト設定です"lua"ではなく "lua5.1"

関連する問題