如何在不需要在其他机器上安装共享库的情况下编译和交付应用程序



在我的Ubuntu机器上,我安装了libGLEW。然而,我没有在我的另一台Ubuntu机器上安装它。它在我的编译机器上运行,但现在我在将可执行文件复制到另一台机器后收到了以下错误。

我想找到一个解决方案,在那里我不需要我的另一台机器来安装库。也许我可以简单地将文件与可执行文件一起共享,就像我在Windows中使用DLL文件一样?这可能吗?如果是,我该怎么做?

error while loading shared libraries: libGLEW.so.2.1: cannot open shared object file: No such file or directory

在CMake中,我使用了以下相关代码:

set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -g" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -g" )
include_directories(
...
"/usr/include/GL" # Also includes glew.h
)
add_executable( ${PROJECT_NAME}
${PROJECT_SRC}
)
target_link_libraries( ${PROJECT_NAME}
...
"GLEW"
)

也许我可以简单地将文件与可执行文件一起共享,就像我在Windows中使用DLL文件一样?

它"依赖"于"依赖项"。

使用命令ldd来确定库或程序需要哪些库。这些必需的库必须存在(安装(在目标系统上。

即使在目标系统上安装了所需的库,也可能无法获得所需的版本。

这就是为什么不同的(linux(系统都有它们的包管理系统,这些系统能够解决依赖关系并自动安装它们。

为了解决我的问题,我在源文件中添加了glew.c,从而解决了这个问题。

相关内容

  • 没有找到相关文章