收藏 分享(赏)

Linux软件开发.ppt

上传人:gnk289057 文档编号:7973083 上传时间:2019-06-01 格式:PPT 页数:17 大小:110.50KB
下载 相关 举报
Linux软件开发.ppt_第1页
第1页 / 共17页
Linux软件开发.ppt_第2页
第2页 / 共17页
Linux软件开发.ppt_第3页
第3页 / 共17页
Linux软件开发.ppt_第4页
第4页 / 共17页
Linux软件开发.ppt_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、Linux软件开发,郑灵翔 ,厦门大学通讯工程系,Linux程序开发,GCC的使用 Makefile的编写 自动生成Makefile GDB的使用,厦门大学通讯工程系,用GCC编译简单程序,#include int main() printf(“Hello, Linux!n”);return 0; ,厦门大学通讯工程系,用GCC编译简单程序,gcc hello.c ./a.outHello Linux!,厦门大学通讯工程系,GCC选项,-c编译或者汇编源文件,但不进行链接。输出由源文件生成的对象文件,扩展名默认为“.o”。 -o file 把输出送到文件file。无论输出的内容是可执行文件、对

2、象文件、汇编文件还是预处理的代码,这个选项都是有效的。但由于这个选项只能产生一个文件,所以在编译多个源文件的时候,除非用这个选项生成最后的可执行文件,否则是没有什么意义的。,厦门大学通讯工程系,GNU make,GNU make是一个软件编译自动化管理工具 允许将一个软件项目的代码分开放在多个源文件里 在改动源码中一个文件的时候,可以只对该文件重新进行编译,厦门大学通讯工程系,Makefile,Makefile被用来告诉make编译哪些文件、怎样编译和何时编译。 target: prereq1 prereq2 prereq3 commands,厦门大学通讯工程系,一个简单的例子,# Sampl

3、e Makefile myprog: hello.ogcc hello.o -o hello hello.o: hello.cgcc -c hello.c clean:rm -f myprog $(OBJS),厦门大学通讯工程系,Makefile的常用自动变量,$ 规则中的目标名字 $ 依赖文件中的第一个 $ 所有的依赖文件,重复出现的名字 只保留一个 $? 依赖文件中所有比目标新的 $+ 所有的依赖文件,保持重复出现的 名字不变,厦门大学通讯工程系,一个简单的例子,# Sample Makefile OBJS = hello.o myprog: $(OBJS)$(CC) $(OBJS) -o

4、 $ hello.o: hello.c$(CC) -c $ clean:rm -f myprog $(OBJS),厦门大学通讯工程系,Makefile的Phony目标,.PHONY: target 不是实际的文件目标 常用于clean这类并不产生实际文件的目标,厦门大学通讯工程系,Makefile的隐含规则,“.o”目标隐含编译规则 用“cc -c”命令编译 “.o”文件目标的隐含依赖文件 同名的C源文件,厦门大学通讯工程系,一个简单的例子,# Sample Makefile OBJS = hello.o myprog: $(OBJS)$(CC) $ -o $ .PHONY: clean cl

5、ean:rm -f myprog $(OBJS),厦门大学通讯工程系,自动生成Makefile,运行autoscan生成configure.scan configure.scanconfigure.in 修改AC_INIT 增加AM_INIT_AUTOMAKE 修改AC_OUTPUT aclocal,autoconf,厦门大学通讯工程系,自动生成Makefile,vi Makefile.am AUTOMAKE_OPTIONS= foreign bin_PROGRAMS = hello hello_SOURCES = hello.c automake -a,厦门大学通讯工程系,Makefile.am,Super target 这是make后将要生成的最终目标,有几种不同类型的目标: bin_PROGRAMS 需要被编译和安装的程序,例如可执行代码 bin_SCRIPTS 只需要安装无需编译的程序,例如脚本 man_MANS 需要安装的man帮助文件 lib_LTLIBRARIES 需要用Libtool生成的库 noinst_PROGRAMS 编译但无需安装的程序,厦门大学通讯工程系,GDB的使用,DEMO,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报