无法使可执行文件可移植
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
我用这个库做了一个小的 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