无法使可执行文件可移植

Can't make executable portable

我用这个库做了一个小的 c++ 程序:http://libtins.github.io

我编译:g++ -o arp arp.cpp -ltins

它运行良好(Ubuntu 14.04 64 位),但是如果我将可执行文件发送给朋友,他在 运行:

时收到此错误
error while loading shared libraries: libtins.so.3.4: cannot open shared object file: No such file or directory

我查看了 Whosebug,发现了一些关于静态链接和动态链接的内容,也尝试了一些 g++ 参数但没有成功。

是否有可能创建一个 "contains" 共享对象本身的二进制文件?

谢谢

您可以使用 -static 静态地 link 库。

g++ -o arp arp.cc -ltins -static

要静态构建 libtins,您可以参考其 README 中的以下部分:

Static/shared build

Note that by default, only the shared object is compiled. If you would like to generate a static library file, run:

cmake ../ -DLIBTINS_BUILD_SHARED=0