繁体   English   中英

C - 编译时包含依赖项

[英]C - Compile with dependencies included

我有一些代码想在我没有 root 访问权限的机器上运行。 那台机器没有运行此代码所需的一些库。

编译时有没有办法包含所有依赖项? 我意识到生成的文件可能非常大。

您正在寻找的是静态编译。 执行静态编译将所有库包括到可执行文件本身中,因此您不必担心特定系统、发行版等上的依赖链。

你可以这样做:

gcc -Wl,-Bstatic -llib1 -llib2 file.c

-Wl将后面的标志传递给链接器, -Bstatic告诉它在可能的情况下链接静态,然后lib1lib2是您打算链接的库。

或者,尝试:

gcc -static file.c

编译仍然需要匹配非特权系统的架构。 并且您需要在编译系统( lib.a )上安装静态库

如果编译正确,运行时它应该显示“不是动态可执行文件”:

ldd a.out

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM