96SEO 2026-02-19 18:02 13
本章主要带着大家一起学习Linux下编译C/C的工具以及关于动静态库的一些基础知识

我们的C语言和C编写出的程序属于翻译型程序此处以C语言为例分析程序翻译过程
当我们写完一个C语言程序时首先我们需要进行预编译操作预编译主要将头文件展开、宏替换、条件编译与去注释我们可使用下列指令生成我们的预编译完的文件以.i为结尾的文件后缀
上图为我们编写的源程序我们来验证我们的预编译阶段是否完成了上述工作我们执行以下执行生成预编译完成后的文件
预编译生成的文件从大小上明显可以看出比我们的源文件要大很多我们再使用vim查看我们的test.i文件如下图
我们发现我们的文件一下就变成了八百多行前面增加的便是我们的stdio文件展开后的样子故我们test.i文件变大了很多因为把我们的库文件代码复制到预编译后的文件中了而且我们不难发现我们之前些的注释被去掉了我们的宏也完成了替换也进行了条件编译的处理与我们的预想完全一致
这一步主要实现的将我们的C语言代码编译成汇编代码我们生成的汇编代码文件以s为后缀名具体指令如下
学过汇编语言的友友们应该就很熟悉了这就是我们的汇编代码编译阶段也如我们所料完成了自己的工作
可重定向二进制目标文件目标文件这个文件在Linux下一般以o为后缀名在window下一般以obj为后缀名具体指令如下
这里生成的已经是机器指令了但是仍然不能直接执行必须链接后才可以执行
只有函数的声明并没有函数的定义因此我们在是使用我们库函数printf、scanf函数时光有函数声明时远远不够的我们必须还有具体的函数定义这些函数定义都放在动态库或静态库因此我们链接也有动态链接和静态链接我们首先完成链接具体指令如下
我们可以通过ldd指令或file指令查看文件使用的动态库/静态库的名字以及采用何种链接方式
补充在Linux下动态库文件的后缀为.so静态库文件的后缀为.a而在window下动态库文件的后缀为.dll静态库文件的后缀为.lib
在动态链接中我们的程序一旦发现有需要使用库函数的代码则会保存该库函数在动态库中的地址运行到此部分时我们直接通过地址跳转到动态库的代码中执行函数执行完函数后继续返回程序执行程序后续代码因此一旦我们的动态库出现了问题我们的程序就无法正确执行
动态链接缺点十分依赖动态库文件若文件出现问题程序则可能出现问题
在静态链接中我们的程序会将需要使用的库函数的定义直接拷贝一份到我们的可执行程序中我们在运行可执行程序时无需静态库我们直接调自己拷贝的代码即可
静态链接优点对静态库文件的无依赖一旦生成可执行程序即使静态库被删除也可以运行
静态链接缺点静态链接生成的可执行程序由于会拷贝静态库中的函数定义因此会变得非常大
在gcc中我们默认使用动态链接的方式进行链接因此直接使用正常的方式生成可执行程序即可例如
而我们若想使用静态链接的方式进行连接我们加上一个static选项即可如下所示
显然我们使用静态链接生成的可执行程序明显比动态生成的可执行程序要大十倍左右也符合我们之前的推理我们在通过ldd和file指令查看我们生成的可执行程序所依赖的库
test-s是静态链接生成的可执行程序因此没有依赖的动态库而test-d是动态链接生成的可执行程序因此有依赖的动态库我们可以通过file看出这两个可执行程序是动态链接还是静态链接
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback