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

C++ 为什么我的程序试图使用libluajit-5.1.so.2而不是libluajit.so?,c++,linux,shared-libraries,C++,Linux,Shared Libraries,我正在写一个使用LuaJIT的项目。我正在尝试在一台计算机上运行我的项目,而我已经有一段时间没有在这台计算机上运行它了。它过去运行得很好,但现在当我尝试运行它时,它会抱怨 我的源代码树中有LuaJIT,它构建得很好。我正在使用CMake生成make文件,据我所知,CMake找到了文件libluajit.so,但当我运行程序时,我发现以下错误: ../build/game/game: error while loading shared libraries: libluajit-5.1.so.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
中有以下几行代码(这是缩写,只是为了显示相关的位)


在源目录上运行cmake之后,我运行
make
。然后要运行它,我只需在构建它时运行
/proj

,而“.so”实际上是指向库的符号链接。使用经过验证的文件名和,以便库的多个版本可以共存,从而防止在上常见的问题。。。其他操作系统,其中旧软件与新库不兼容,而新软件与旧库不兼容。

如何链接程序?你是如何运行你的程序的?@JoachimPileborg:附加信息如果它是一个符号链接,运行
ls-l
会显示这一点,对吗?在luajit目录中运行
make
,编译.so文件,它不是符号链接。
find_package(LuaJIT REQUIRED)
set(Extern_LIBS luajit) 
add_executable(proj ${proj_Sources})
target_link_libraries(proj ${Extern_LIBS})