Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)

news/2025/1/3 2:42:45/

目录

1.rwx 对于目录和文件的区别

2.gcc 编译器

2.1编译过程

2.2gcc 的其他参数

3.动态库和静态库

3.1函数库


1.rwx 对于目录和文件的区别

r        文件的内容可以被查看。支持cat、more、head...vim ;目录的内容可以被查看。ls、tree                           
w        文件的内容可以被添加、修改、删除。vim   >   >>  ;目录的内容(目录项)可以被添加、修改、删除。rm、touch、mv、cp... |
x        可执行、可运行。(可执行程序、脚本);该目录可以被进入。 cd                                       

2.gcc 编译器

2.1编译过程

1. 预处理: 预处理器
    - 将 源文件,展开 头文件、替换宏(变量宏、函数宏)、替换 空行、空格、table、注释
    - gcc -E hello.c -o hello.i
        - -E: 预处理选项
        - -o:重命名。
2. 编译:编译器
    - 逐行检查程序中出现的 语法和词法 错误!简单的逻辑错误。—— **==所有编译过程中,最耗时==**
    - gcc -S hello.i -o hello.s
        - -S: 编译选项,如果编译无误,生成 .s 汇编文件。
3. 汇编:汇编器。
    - 将 .s 汇编 文件中,的所有汇编指令,翻译成二进制机器码。
    - gcc -c hello.s -o hello.o
        - -c: 汇编选项。 无错误检查。机械翻译。

4. 链接:连接器。-- ld --
    - 将 .o 的目标文件,链接库文件、数据段合并,地址回填。生成可执行文件。
    - gcc hello.o -o hello
        - 此过程无专用参数。 -o 不是连接过程必须使用的参数

2.2gcc 的其他参数

- -c:只生成目标文件(过程包含:预处理、编译、汇编)
- -v:查看gcc版本
- **-I(大i): 指定 头文件所在目录位置。**
- **-L:指定库文件所在目录位置。**
- **-l(小L):指定库名。( 去掉前缀lib 和 后缀 .so 或 .a )**
- -g: 使用gdb调试前,编译程序添加! 加-g编译的可执行文件,带有调试表。给gdb提供调试环境。
- -Wall:显示所有的 警告信息。
- -D:在编译期间动态的向程序中,注册变量宏。
    - 例:gcc -o test test.c -D MAX=10

3.动态库和静态库

3.1函数库

- 本质:一组函数。具有相近的功能或操作同一数据结构。
    - <string.h> : strcpy/strcmp/strcat/strlen/strstr/strchr/strtok ....
    - 自定义库:<mysort.h> : bubble_sort / select_sort/ quick_sort / insert_sort ....
- 作用:
    1. 代码复用。
    2. 程序积累。
- 发布形式:
    1. 源码形式:
        - 优点:方便使用者学习和使用。
        - 缺点:1. 保密性差。2. 编译程序耗时。3. 编译受平台、版本限制。
    2. 二进制形式:
        - 优点、缺点,与上述相反。

- 我们使用的函数: 标准C库:/lib/x86_64-linux-gnu/libc.so.6


http://www.ppmy.cn/news/1559526.html

相关文章

玛哈特矫平机助力其龙机械,引领汽摩配件制造技术升级

在智能制造的浪潮中&#xff0c;传统制造业正经历着转型升级的重要机遇。重庆其龙机械制造有限公司&#xff08;以下简称“其龙机械”&#xff09;紧跟时代步伐&#xff0c;通过引入玛哈特数控高精密矫平机&#xff0c;实现了汽摩配件矫平工艺的升级&#xff0c;展现了智能制造…

Flask 与 SocketIO 正确初始化及最佳实践调试

1、问题 我使用Flask和Flask-SocketIO 来做 Websocket 链接。前期正常使用&#xff0c;但是后期布置修改什么导致Websocket连接失败。排查需求&#xff0c;才发现初始化不正常导致。 SocketIO 和 Flask 应用的初始化顺序和引用循环的问题 2、环境 python-engineio4.11.1 py…

探索 Java 微服务的新趋势:现代工具与最佳实践

引言 随着企业级架构从单体应用逐渐向微服务迁移&#xff0c;Java 在这一领域依然保持了强大的竞争力。从经典框架 Spring Boot 到轻量级的新兴工具&#xff0c;Java 的生态系统不断推出新的方案&#xff0c;以应对微服务架构带来的挑战和复杂性。本文将围绕 Java 微服务的最新…

如何在 Ubuntu 22.04 上安装 Elasticsearch

简介 在本教程中&#xff0c;你将学习如何在 Ubuntu 22.04 服务器上安装 Elasticsearch。此外&#xff0c;你还将学习如何使用 Elasticsearch REST API 索引和操作数据。 Elasticsearch 是一个基于 Apache Lucene Library 的免费分布式搜索和分析引擎。它是一个快速且可扩展的…

扬声器阵列的波束成形相关的关键技术和国内外研究现状

1. 关键技术 扬声器阵列的波束成形技术旨在通过精确控制多个扬声器的输出信号&#xff08;包括延迟、增益和相位等&#xff09;&#xff0c;以实现声音波束的空间定向。这种技术通常应用于声音增强、噪声抑制、3D音频、声场控制等领域&#xff0c;尤其在复杂的声学环境中尤为重…

短视频平台的视频水印怎么去除?

当你看到某个短视频&#xff0c;觉得内容非常有价值&#xff0c;想要个人收藏以便日后学习或回顾&#xff0c;但发现短视频平台无法直接下载且带有水印时&#xff0c;以下提供的几种方法将帮助你轻松去除水印&#xff0c;获取高清无水印的视频内容。 方法一&#xff1a;使用第…

基于问卷调查数据的多元统计数据分析与预测(因子分析、对应分析与逻辑回归)

离婚数据分析与预测 该数据集包含个人根据与婚姻生活相关的55个不同问题对其配偶的评分。 而且&#xff0c;问卷回答者必须从0到4打分&#xff0c;0是最低的&#xff0c;4是最高的 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warni…

十四五规划引领,CES Asia 2025展望机器人产业新未来

据“十四五”机器人产业发展规划&#xff0c;我国以高端化智能化为导向推动机器人产业发展&#xff0c;目标到2025年成为全球机器人技术创新策源地等&#xff0c;且一批核心技术和高端产品将取得突破&#xff0c;产业营业收入年均增速超20%&#xff0c;制造业机器人密度实现翻番…