编译器和工程管理器
来源:互联网 发布:今日头条取消淘宝链接 编辑:程序博客网 时间:2024/05/21 06:17
gcc(编译器)
1、编译后的库文件:a 静态库文件
so动态库文件
gcc –E hello.c >hello.i 预处理生成i文件 > 重定向
gcc –c hello.i hello.o
gcc –S hello.c 汇编代码 hello.s
gcc –O optimize.c –o optimize.op
-O 优化编译
有四种:O0,O1,O2,O3
注意:优化有极限;有些代码不能优化。
2、-D
例如:-Dmacro 相当于C中的#define marco
gcc –DPI=3.1415 –o hello.out hello.c
3、-Umacro
取消一个宏定义
4、多文件编译
gcc add.c sub.c –o main
-Idirname
gcc add.c sub.c –o main –I./tmp
-C :预处理不删除注释信息
-lm:表示连接名为“libm.a”的数学函数库
-L 指定路径 -l 指定库名
静态库:牺牲空间提高效率,难以升级
动态库:共享库
静态库的创建:(1)gcc –c hello.c 生成 hello.o
( 2 ) ar acs 静态库名 目标文件1 目标文件 目标文件3
静态库名的表示方法:libname.a
静态库的使用:gcc –o file file.c –L. –lname
ar –t libname.a 查看库里有哪些目标文件
ar –d libname.a add.o 删除add.o 文件
ar –dv 出错有提示
ar –xv libname.a add.o 从库中把文件提取出来
动态库的创建:gcc –shared –fPIC –o库名.so 源文件.c
动态库的使用:gcc 源文件.c ./库名.so –o 可执行文件名
-Wall 生成所有警告信息
-Werror 错误
-w 不生成任何警告信息
工程管理器:管理多个文件
Make工程管理器也就是个“自动编译管理器”
“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile 文件的内容来执行大量的编译工作。
Makefie 是make 读入的唯一配置文件。
(默认为小写,没有小写就找大写的)
Makefile的编写规则 :在vim 中写
(1)需要由make 工具创建的目标体,通常是目标文件或可执行文件;
(2)要创建的目标体所依赖的文件;
(3)命令,这一行必须以制表符(tab)开头。
目标 :依赖文件
<TAB> command
例如:hello:hello.c
gcc -o hello hello.c
hello.o:hello.c
gcc -c hello.c
注意点:hello为终极目标;从下往上执行;-c 转换成目标文件
目标hello需要hello.o,所有需要由.c生成.o,才能执行。
不需执行的叫伪目标。
要执行伪代码:make clean
防止有同名文件,需要先声明: .PHONY:clean
clean:
rm -f *.o hello.c
- 编译器和工程管理器
- gcc编译器 工程管理器
- 工程管理器make和模板的使用
- Linux工程管理器和GDB调试器
- 工程管理器make和调试工具gdb
- 工程管理器
- 工程管理器
- 工程管理器
- Linux调试器gdb和工程管理器make
- gcc调试基础作用命令和工程管理器make
- 编译器+调试器+功能管理器
- Make工程管理器(读书笔记)
- Make工程管理器
- Make工程管理器
- Make工程管理器
- 【Linux】工程管理器Make
- 工程管理器make
- 初识工程管理器make
- Android ----- butterknife框架使用
- iOS 开发键盘弹出,tableview上升
- hdu 2686 Matrix(最大费用流||多线程DP)@
- js隐藏微信功能按钮方法
- 记忆资料
- 编译器和工程管理器
- linux安装php-java-bridge
- X86和X86-64的函数栈帧结构
- 常用工具小技巧
- form表单提交过来的文本框内容判空处理
- php+redis实现多台服务器内网存储session并读取
- maven报错Fatal error compiling: tools.jar not found错误的问题处理
- 2017年1月18日 课堂笔记
- php(utf8)跨站到asp(gb2312)乱码问题