为什么我的程序试图使用libluajit-5.1.so.2而不是libluajit.so?

我有一个使用LuaJIT的项目。 我试图在一台计算机上运行我的项目,我还没有在一段时间内运行它。 它曾经运行得很好,但现在当我尝试运行它抱怨。

我在我的源代码树中有LuaJIT,而且构build得很好。 我正在使用CMake生成我的make文件,并且据我所知,CMakefind文件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的价值。 我可以添加更多的细节,如果有必要,我可以添加更多的细节,如果有必要,我不知道什么信息将有助于弄清楚发生。

编辑:

要build立和链接程序,我将这些行放在文件CMakeLists.txt (这只是简单地显示相关位)

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

在我的源代码目录上运行cmake后,运行make 。 然后运行它,我只是运行./proj

当你建立它时,“.so”实际上是图书馆的符号链接。 使用Verisioned文件名和SONAME ,以便多个版本的库可以共存,从而防止在其他操作系统上常见的问题,即旧版软件与新版库不兼容,而较新软件与旧版库不兼容。