如何在不在远程计算机上安装库的情况下构建独立的 C ELF 二进制文件?
How to build a standalone C ELF binary without installing libraries on a remote machine?
我正在尝试在 linux 上构建一个 C ELF 二进制文件并尝试在另一台机器上直接执行它。 (通过 scp linux 命令发送)
问题是,即使我使用所有需要的库构建 ELF 二进制文件,当我尝试在远程机器上执行它时,我也遇到了这个错误:
/tmp/25636: error while loading shared libraries: libnftnl.so.11: cannot open shared object file: No such file or directory
由于我无法执行 sudo apt install -y libfuse-dev libmnl-dev libnftnl-dev
在远程机器上安装我的库,我想知道是否可以将所有依赖项打包到 ELF 二进制文件中,以便 ELF 二进制文件可以以独立方式执行。
bguess.
@जलजनक是对的。添加 -static
标志有效,但问题是您必须在正确的位置添加它!
对我来说,它就在 -o OUTPUT_FILE
之后 CFLAGS
和 LDFLAGS
之前。
谢谢大家的帮助。
我正在尝试在 linux 上构建一个 C ELF 二进制文件并尝试在另一台机器上直接执行它。 (通过 scp linux 命令发送)
问题是,即使我使用所有需要的库构建 ELF 二进制文件,当我尝试在远程机器上执行它时,我也遇到了这个错误:
/tmp/25636: error while loading shared libraries: libnftnl.so.11: cannot open shared object file: No such file or directory
由于我无法执行 sudo apt install -y libfuse-dev libmnl-dev libnftnl-dev
在远程机器上安装我的库,我想知道是否可以将所有依赖项打包到 ELF 二进制文件中,以便 ELF 二进制文件可以以独立方式执行。
bguess.
@जलजनक是对的。添加 -static
标志有效,但问题是您必须在正确的位置添加它!
对我来说,它就在 -o OUTPUT_FILE
之后 CFLAGS
和 LDFLAGS
之前。
谢谢大家的帮助。