我的项目使用 CMake 并且在 Ubuntu 16.04 上编译没有问题。
启动编译的应用程序时,我收到消息无法打开共享对象文件。
所有共享对象库都可以在同一个非标准文件夹中使用(我在那里需要它们)。
ldd输出显示大多数共享对象都可以找到。这里有些例子:
libboost_filesystem.so.1.55.0 => /path/to/libs/boost/lib/libboost_filesystem.so.1.55.0 (0x00007f2ed1fa0000)
libboost_filesystem.so.1.55.0 => /path/to/libs/boost/lib/libboost_filesystem.so.1.55.0 (0x00007f96af1f5000)
libboost_program_options.so.1.55.0 => /path/to/libs/boost/lib/libboost_program_options.so.1.55.0 (0x00007f96aef85000)
libboost_system.so.1.55.0 => /path/to/libs/boost/lib/libboost_system.so.1.55.0 (0x00007f96aed80000)
Run Code Online (Sandbox Code Playgroud)
由于某种原因,其他一些无法找到。例如:
libboost_iostreams.so.1.55.0 => not found
libboost_chrono.so.1.55.0 => not found
Run Code Online (Sandbox Code Playgroud)
还有其他非 boost 库显示相同的行为,但为了简单起见,我只展示 boost 示例。
以下是已经成功运行的解决方法。但我对“我需要什么”部分中的两点非常感兴趣。