【问题标题】:How to compile a c++ program without library dependency? [duplicate]如何编译没有库依赖的c++程序? [复制]
【发布时间】:2020-10-09 07:07:59
【问题描述】:

我对 C++ 很陌生。我正在尝试编译一个需要诸如 libcurl.a 和 libcjose.so.0 之类的库的 C++ 程序。编译成功,我可以在安装了这些库的机器上运行程序。

但是当我尝试将二进制文件 only 复制到另一台机器时,它抱怨我缺少这些库:

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

只是想知道有没有办法让我只复制/编译二进制文件而无需再次在另一台机器上安装这些库?

【问题讨论】:

标签: c++


【解决方案1】:

您可以在可执行文件中静态链接所有库。此过程增加了可执行文件的大小,但让您有可能没有安装库。

进一步阅读:

【讨论】:

    【解决方案2】:

    您可以使用共享库(.so、.dll)移动二进制文件,但如果您尝试使用其他发行版,它就不能很好地工作。 (例如:在 Ubuntu 上构建,您在 Fedora 上试用)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多