Uncategorized
1.9k words
一个基本的Makefile12hello: echo "hello world!" 使用make执行这个Makefile 结果是 12echo "hello world!"hello world! 创建一个hello文件后再make结果是 1make: 'hello' is up to date. 这是 make 的经典行为: 只要目标文件(hello)已经存在,并且所有依赖为最新,make 就不会重复执行。 但现在 hello 目标没有任何依赖,所以: make 只看有没有 hello 这个文件 如果已经存在这个文件,并且没有任何依赖需要更新它 就会判断它是 up to date(已经是最新的) Makefile语法一个Makefile由一系列rule组成,一个rule的基本结构为: 1234targets: prerequisites command command command 目标(targets)是文件名,使用空格分隔。通常每条规则只包含一个目标。 命令(commands)是一系列步骤,通常...
Uncategorized
12k words
第一天本笔记参考github知名项目 将整数编译为可执行文件在这个提交中,主要的代码逻辑如下: 读取输入的整数:程序从命令行参数中获取一个整数值。 生成汇编代码:根据获取的整数值,生成对应的汇编代码。 调用汇编器和链接器:使用系统的汇编器(如 as)和链接器(如 ld)将生成的汇编代码转换为可执行文件。 具体步骤: 读取命令行参数:程序检查命令行参数,确保用户提供了一个整数值。 生成汇编代码:根据提供的整数值,生成一段简单的汇编代码,该代码在运行时会以该整数作为退出码。 写入汇编文件:将生成的汇编代码写入一个临时的汇编文件(如 tmp.s)。 调用汇编器和链接器:使用系统命令调用汇编器和链接器,将汇编文件转换为可执行文件。 清理临时文件:删除临时的汇编文件,保持工作目录的整洁。 1234567891011121314151617main.c#include<stdio.h>#include<stdlib.h>int main(int argc,char **argv){ if(argc != 2){ fpri...