欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)

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

2025/2/25 16:18:51 来源:https://blog.csdn.net/m0_53349772/article/details/144731746  浏览:    关键词:Linux高并发服务器开发 第六天(rwx 对于目录和文件的区别 gcc编译器 动态库静态库)

目录

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com