如何构建具有所有依赖项的c ++以在另一台机器上运行

时间:2017-11-24 08:43:28

标签: c++ codeblocks

我编写了c ++代码,其中包含了我使用-l选项包含的一些库。代码就在我的机器上,但我想最终在另一台名为B的机器上运行此代码。我使用c++11GNU 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

2 个答案:

答案 0 :(得分:1)

为了实现目标,您有两种选择。

  1. 您可以使用可执行文件复制共享库(libcppkafka.so)并正确配置其位置。

  2. 或者您可以通过将共享库静态链接到您的程序来避免共享库。为此,您需要拥有这些库的静态版本(在您的情况下为libcppkafka

答案 1 :(得分:0)

由于两台机器都运行相同的发行版和版本(Ubuntu 16.04),您可以在第一台机器上找到已安装且有用的软件包,并在第二台机器上安装这些软件包。

您需要复制未打包的内容,例如在/usr/local/lib

的某些部分

你可以考虑为你的东西制作一个真实的.deb package(但这是更多的工作)。

请注意,IDE只是一个IDE而且不编译任何东西(IDE正在运行外部编译器命令;您的编译器是GCC调用的g++)。你应该在命令行上编译(你甚至可以制作一些shell脚本,在另一台机器上运行)。