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”实际上是库的符号链接。使用经过验证的文件名和SONAME,以便库的多个版本可以共存,从而防止在...其他操作系统上常见的问题,即旧软件与新库不兼容,而新软件与旧库不兼容。

于 2012-10-06T04:34:32.330 回答