我编写了c ++代码,其中包含了我使用-l
选项包含的一些库。代码就在我的机器上,但我想最终在另一台名为B的机器上运行此代码。我使用c++11
和GNU GCC Compiler
在我的机器上构建它并尝试在机器B上运行它但是它出错:
error while loading shared libraries: libcppkafka.so.0.1: cannot open shared object file: No such file or directory
如何构建包含所有依赖项的c ++代码以消除此错误?
注意:libcppkafka.so.0.1
位于路径/usr/local/lib
的我的计算机中
注意:我使用codeblock
IDE,所以如果解决方案与代码块兼容,我感谢
注意:两台机器都是ubuntu 16.04
答案 0 :(得分:1)
为了实现目标,您有两种选择。
您可以使用可执行文件复制共享库(libcppkafka.so)并正确配置其位置。
或者您可以通过将共享库静态链接到您的程序来避免共享库。为此,您需要拥有这些库的静态版本(在您的情况下为libcppkafka
)
答案 1 :(得分:0)
由于两台机器都运行相同的发行版和版本(Ubuntu 16.04),您可以在第一台机器上找到已安装且有用的软件包,并在第二台机器上安装这些软件包。
您需要复制未打包的内容,例如在/usr/local/lib
你可以考虑为你的东西制作一个真实的.deb
package(但这是更多的工作)。
请注意,IDE只是一个IDE而且不编译任何东西(IDE正在运行外部编译器命令;您的编译器是GCC调用的g++
)。你应该在命令行上编译(你甚至可以制作一些shell脚本,在另一台机器上运行)。