导出微信聊天记录导出查看怎样查看

9849人阅读
大学有阵子做嵌入式的时候觉得Makefile简直高不可攀~~
教程大多数都在试图把许多细节都讲清楚~~没有跟教程死磕3天的劲头真的不容易搞懂Makefile
而且写Makefile需要一点点gcc编译器的储备知识。对于在linux上刚上手的开发者的确有点绕。
所以我在这里做了个最简版的Makefile,看懂这个,你大体能知道Makefile该怎么写~~~~其他细节,只能“大行不顾细谨”了
从这里下载Makefile最简版本:
http://download.csdn.net/detail/sera_ph/7111665
里面的文件为&DandL.txt &Makefile &outlib.c &outlib.h &testmake.c
其中main函数位于testmake.c中
testmake.c 中调用了由outlib.h声明outlib.c定义的一个函数。
使用gcc将这个最简单的工程编译链接的shell命令,在DandL.txt中
gcc -c outlib.c
gcc -c testmake.c
gcc testmake.o outlib.o -o testmake
gcc -c 的意思是将(.c文件)源文件编译,生成目标文件(.o文件)~~(源文件的#include预处理就能找到对应的头文件(.h文件))
gcc 目标文件 -o testmake的意思是将目标文件链接,生成可执行文件。testmake是可执行文件的名字。
这些就是你需要知道的gcc储备知识
Makefile就是针对这3个代码文件的最简版本
Makefile的基本语法如下:
target...(目标) : prerequisites...(依赖文件)
command(shell命令)
这些通过我写的Makefile很容易理解:
all: testmake.o outlib.o
gcc testmake.o outlib.o -o exeFile
outlib: outlib.c outlib.h
gcc -c outlib.c
testmake: testmake.c
gcc -c testmake.c
rm -f *.o exeFile
很明显,我们能看到,这个Makefile包含4个基本语句。
当在当前文件夹下,输入make outlib时,就相当于执行target为outlib的那语句的command
执行结果如下:
[***@localhost testmake]$ ls
testmake.c
[***@localhost testmake]$ make outlib
gcc -c outlib.c
[***@localhost testmake]$ ls
testmake.c
其中,make all和make clean是Makefile最常用的功能,一般要注意检查一下。
当你掌握这些~你已经出师可以自己写Makefile~当然,还有许多高端的技巧等你学习探索。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:47404次
排名:千里之外
原创:12篇
评论:31条
(1)(2)(1)(1)(3)(1)(1)(2)makefile简单helloworld -
- ITeye技术网站
最近要在unix系统上开发c++应用程序,但默认情况下unix编译c++程序需要使用makefile。其实makefile语法还是比较简单,看上去有点像ant。废话不说了,直接上helloworld。
编写了3个文件,分别是file1.c、file2.c和file2.h。
file1.c代码:
#include &stdio.h&
#include "file2.h"
int main() {
printf("print file1$$$$$$$$$$$$$$$$$$$$$$$$\n");
File2Print();
file2.c代码:
#include &stdio.h&
#include "file2.h"
void File2Print() {
printf("Print file2**********************\n");
file2.h代码:
#ifndef FILE2_H_
#define FILE2_H_
#ifdef __cplusplus
extern "C" {
void File2Print();
#ifdef __cplusplus
先来个比较基础的makefile列子:
helloworld : file1.o file2.o
gcc file1.o file2.o -o helloworld
file1.o : file1.c file2.h
gcc -c file1.c -o file1.o
file2.o : file2.c file2.h
gcc -c file2.c -o file2.o
rm -rf *.o helloworld
一个makefile 主要含有一系列的规则,如下:A: B(tab)&command&(tab)&command&每个命令行前都必须有tab符号。上面的makefile文件目的就是要编译一个helloworld的可执行文件。让我们一句一句来解释:helloworld : file1.o file2.o: helloworld依赖file1.o file2.o两个目标文件。 gcc File1.o File2.o -o helloworld: 编译出helloworld可执行文件。-o表示你指定 的目标文件名。 file1.o : file1.c: file1.o依赖file1.c文件。gcc -c file1.c -o file1.o: 编译出file1.o文件。-c表示gcc 只把给它的文件编译成目标文件, 用源码文件的文件名命名但把其后缀由“.c”或“.cc”变成“.o”。在这句中,可以省略-o file1.o,编译器默认生成file1.o文件,这就是-c的作用。
file2.o : file2.c file2.h gcc -c file2.c -o file2.o这两句和上两句相同。
clean: rm -rf *.o helloworld当用户键入make clean命令时,会删除*.o 和helloworld文件。 如果要编译cpp文件,只要把gcc改成g++就行了。写好Makefile文件,在命令行中直接键入make命令,就会执行Makefile中的内容了。 到这步我想你能编一个Helloworld程序了。
来个进阶的列子,主要是使用变量:
OBJS = file1.o file2.o
CFLAGS = -Wall -O -g
helloworld : $(OBJS)
$(CC) $(OBJS) -o helloworld
file1.o : file1.c file2.h
$(CC) $(CFLAGS) -c file1.c -o file1.o
file2.o : file2.c file2.h
$(CC) $(CFLAGS) -c file2.c -o file2.o
rm -rf *.o helloworld
这里我们应用到了变量。要设定一个变量,你只要在一行的开始写下这个变量的名字,后 面跟一个= 号,后面跟你要设定的这个变量的值。以后你要引用 这个变量,写一个$ 符号,后面是围在括号里的变量名。 CFLAGS = -Wall -O –g,解释一下。这是配置编译器设置,并把它赋值给CFFLAGS变量。-Wall: 输出所有的警告信息。-O: 在编译时进行优化。-g: 表示编译debug版本。
这样写的Makefile文件比较简单,但很容易就会发现缺点,那就是要列出所有的c文件。如果你添加一个c文件,那就需要修改Makefile文件,这在项目开发中还是比较麻烦的。
再来一个更通用的写法,使用函数、变量来构成makefile程序。
CFLAGS = -Wall -O –g
TARGET = ./helloworld
SOURCES = $(wildcard *.c *.cpp)
OBJS = $(patsubst %.cpp, %.o, $(SOURCES))
$(TARGET):$(OBJS)
$(XX) $(OBJS) -o $(TARGET)
chmod a+x $(TARGET)
rm -rf *.o helloworld
函数1:wildcard产生一个所有以'.c' 结尾的文件的列表。SOURCES = $(wildcard *.c *.cpp)表示产生一个所有以.c,.cpp结尾的文件的列表,然后存入变量SOURCES 里。 函数2:patsubst匹配替换,有三个参数。第一个是一个需要匹配的式样,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的列表。OBJS = $(patsubst %.c,%.o,$(patsubst %.cc,%.o,$(SOURCES)))表示把文件列表中所有的.c,.cpp字符变成.o,形成一个新的文件列表,然后存入OBJS变量中。
最后说下比较有用的两个表达方式的用法$@和$&
$(XX) $(CFLAGS) -c $& -o $@
$(XX) $(CFLAGS) -c $& -o $@
wenrunchang123
浏览: 173734 次
来自: 深圳
受教了,谢谢
楼主,语句2
||前面已经为true,后面的(0 & ...
Javascript引擎单线程机制及setTimeout执行原 ...
感谢LZ的总结, 受教了实验三make工具的使用和makefile文件;的编写;[实验目的];1、掌握工程管理器make工具的使用;2、掌握makefile文件的编写;[实验内容];1、make工具和makefile文件基本使用练;(1)首先打开vim编辑器,编辑名称为main.;(2)在mytool1.h中定义mytool1.;(3)用mytool1.c实现一个简单的打印显示;(
实验三 make工具的使用和makefile文件
[实验目的]
1、掌握工程管理器make工具的使用
2、掌握makefile文件的编写
[实验内容]
1、make工具和makefile文件基本使用练习
(1) 首先打开vim编辑器, 编辑名称为main.c的C源程序,录入以下源代码。代码中使用main函数调用mytool1_print、mytool2_print这两个函数。
(2) 在mytool1.h中定义mytool1.c的头文件。
(3) 用mytool1.c实现一个简单的打印显示功能。
(4) 在mytool2.h中定义mytool2.c头文件。
(5) mytool2.c实现的功能与mytool1.c相似。
(6) 使用makefile文件进行项目管理。makefile文件内容如下。
马克(7) 将源程序文件和makefile文件保存在Linux下的同一个文件夹下,然后运行make编译链接程序如下: [david@localhost 1c]$
[david@localhost 1c]$ ./main
This is mytool1 print:hello
This is mytool2 print:hello
2、使用gdb进行跟踪调试。
[实验要求]
1、通过练习,掌握make工具的使用方法;理解为什么要使用make工具进行工
2、熟练掌握如何编写makefile文件。
[实验报告]
1. 报告要求用专门的实验报告纸书写,字迹清晰,格式规范;
2. 报告内容写出编写的makefile文件的内容。
3. 报告中写清姓名、学号、实验日期、实验题目、实验目的、实验要求;
4. 报告最后包含实验总结。
三亿文库包含各类专业文献、行业资料、生活休闲娱乐、中学教育、高等教育、幼儿教育、小学教育、make工具的使用和makefile文件的编写20等内容。 
 Makefile简单编写_计算机软件及应用_IT/计算机_专业...包括:make 认为那些文 件需要重建;那些文件需要比较...--build=BUILD 工具链当前的运行环境,默认是 config...  包括四种类型行:目标行、命令行、 宏定义行和 make 伪指令行(如“include”。makefile 文件中注释以“#”开头。当一 ) 行写不下时,可以用续行符“\”转入下...  编写简单的makefile文件_计算机软件及应用_IT/计算机_专业资料。简单的GCC下的makefile文件编写 MakeFile 文件的编写 Sunny.man 1. make 命令的运行过程在 shell 的...  所以我们需要编写 Makefile 文件,这样可以提高实际项目的工作效率。 在一个 Makefile 中通常包含下面内容: 1、需要由 make 工具创建的目标体(target) ,通常是目标...  最近一直在搞 Makefile 文件的编辑,一直想通过自己的...使用这 些工具的目的是创建能在用户环境使用的、可...Make Ct =touch 更新目标文件时间但不进行新的...  make 是一个 命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大...文件,和 3 个头文件,我们要写一个 Makefile 来告诉 make 命令怎样 编译和...  教会你如何编写makefile文件_计算机软件及应用_IT/计算机_专业资料。教会你如何编写...请注意: 我用的是g++进行编译的,你也可以按照你自己的选择来编译程序 make的...  因此,有效的利用 make 和 makefile 工具可以大大提高项目开 发的效率。同时掌握...宏定义的使用可以使我们脱离那些冗长乏味的编译选项,为编写 makefile 文件带来很大...  项目管理工具的使用 成 绩: 一、实验目的: 1.熟悉 GNU make 的操作知识; 2...第 12 页至第 14 页说明编写一个 makefile,学习了解makefile文件中一项规则的...

我要回帖

更多关于 怎样导出微信聊天记录 的文章

 

随机推荐