Makefile第二讲:打印出内容和使用变量

简介: 摘要 `@echo "开始生成最终执行文件,请稍候..."`这一句便是将一条信息输出到终端,为何前边有个`@`符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上`@`符号试试),实验证明,字符串可以不加引号。

摘要 `@echo "开始生成最终执行文件,请稍候..."`这一句便是将一条信息输出到终端,为何前边有个`@`符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上`@`符号试试),实验证明,字符串可以不加引号。 看到`OBJS = main.o`了吗?这就是变量的定义,变量定义遵循一般语言的变量命名规则,可以是`_`和`$`开头,变量的值无论是字符串还是什么,都可以不要引号;有一种情况必须不要引号,就像上例这种,具体的....自己尝试吧。

 

main.cpp

#include 
using namespace std; int main() { cout <<"Hello makefile"; return 0; } 

makefile

OBJS = main.o
test:$(OBJS)
    @echo "开始生成最终执行文件,请稍候..."
    g++ main.o -o test

main.o:main.cpp g++ -c main.cpp -o main.o clean: rm main.o test 
  • @echo "开始生成最终执行文件,请稍候..."这一句便是将一条信息输出到终端,为何前边有个@符号呢?有了这个符号该命令本身就不会输出到终端(不理解,自己去掉或者加上@符号试试),实验证明,字符串可以不加引号。
  • 看到OBJS = main.o了吗?这就是变量的定义,变量定义遵循一般语言的变量命名规则,可以是_$开头,变量的值无论是字符串还是什么,都可以不要引号;有一种情况必须不要引号,就像上例这种,具体的….自己尝试吧。
  • $(OBJS)这是对变量的调用。
  • 还可以把shell命令的返回值作赋给变量,例如将当前目录的路径赋值给变量:CURRENT_DIR = $(shell pwd)
目录
相关文章
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
169624 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
|
C++ 安全 数据安全/隐私保护
|
Shell 开发工具 Android开发
如何确认 fastboot unlock 解锁成功,如何确认DM-verity 已关闭
如何确认 fastboot unlock 解锁成功,如何确认DM-verity 已关闭
2357 0
|
存储 缓存
PCIe TPH (TLP Processing Hints) 介绍
PCIe TPH (TLP Processing Hints) 介绍
2999 0
PCIe TPH (TLP Processing Hints) 介绍
|
设计模式 缓存 算法
一线互联网企业100万年薪面试题大全(含答案解析)
Android进阶学习视频 算法 数据库 移动开发 阿里 面试
|
存储 Java 数据库
Java面向对象编程实战详解(图书管理系统示例)(上)
Java面向对象编程实战详解(图书管理系统示例)
476 0
|
存储
使用树莓派简单快速的烧录操作系统(含两个方法)
使用树莓派简单快速的烧录操作系统(含两个方法)
2243 0
|
自然语言处理 Java 关系型数据库