Linux下用gcc进行静态编译

本文最后更新于2017年9月10日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

之前有记录过「静态库和动态库」、「GCC的常用编译选项」两篇文章,但说来惭愧,还一直没有真正实践过特定场景的静态编译,趁着周末有时间,再加上之前刚好有一个场景需要用到静态编译的功能,实际验证了一下Linux下gcc的静态编译的相关选项及其功能和注意事项。在此记录一下,方便以后参考。

正文:

参考解答:

之前有篇文章记录了如何使用OpenSSL库来实现字符串的base64编解码功能「Linux下C语言实现的base64加解密」,这里使用该文章中的代码进行演示说明:

&


0、静态编译之前,需要知道可执行程序依赖哪些库;

1、要想进行静态编译,还需要系统安装有对应的静态库(.a结尾);

2、静态编译需要为gcc指定一些特定选项;

3、如何定位手动编译的静态库文件;

4、验证编译后的可执行程序是否满足要求;

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3602.html

《Linux下用gcc进行静态编译》上有3条评论

  1. 宋宝华: 关于Linux编译优化几个必须掌握的姿势
    https://mp.weixin.qq.com/s/CIYzI6SAWcHWTD6z3PvOuQ

    下面给几条实践指南:
    1、尽量不要尝试用O0去编译内核,这不符合真实的工程实践,也不太被主流Linux社区所支持;内核依赖O2/Os去做较多的优化;
    2、追求你的代码在O2的情况下,仍然是正确的,代码要经得起编译优化;比如O0工作正常,而O2不正常,应该尽可能从自身找原因,分析汇编;
    3、如果在全局优化的情况下,想针对某个局部避免优化,可以尝试用noinline,__attribute__((optimize("O0")))等进行外科手术式地调整。

发表评论

电子邮件地址不会被公开。 必填项已用*标注