在我的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
,从而解决了这个问题。