2

LuaJIT を使用して書いているプロジェクトがあります。しばらく実行していないコンピューターでプロジェクトを実行しようとしています。以前は問題なく動作していましたが、実行しようとするとエラーが発生します。

ソース ツリーに LuaJIT があり、問題なくビルドできます。CMake を使用して make ファイルを生成しています。私が知る限り、CMake は libluajit.so ファイルを見つけますが、プログラムを実行すると、次のエラーが発生します。

../build/game/game: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

libluajit.so ではなく、そのバージョンのライブラリを探している理由がわかりません。これは価値のあるUbuntu Linuxです。必要に応じて詳細を追加できます。必要に応じて詳細を追加できます。何が起こっているのかを把握するのにどの情報が役立つかわかりません。

編集:

プログラムをビルドしてリンクするために、ファイルにこれらの行がありますCMakeLists.txt(関連するビットを表示するために少し省略されています)

find_package(LuaJIT REQUIRED)
set(Extern_LIBS luajit) 
add_executable(proj ${proj_Sources})
target_link_libraries(proj ${Extern_LIBS})

ソース ディレクトリで cmake を実行した後、make. それを実行するには、実行するだけです./proj

4

1 に答える 1

1

ビルドしたとき、「.so」は実際にはライブラリへのシンボリックリンクでした。古いソフトウェアが新しいライブラリと互換性がなく、新しいソフトウェアが古いライブラリと互換性がないという、他のオペレーティング システムで一般的に見られる問題を回避して、ライブラリの複数のバージョンが共存できるように、Verisioned ファイル名と SONAME が使用されます

于 2012-10-06T04:34:32.330 に答える