热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux学习笔记Makefile中的变量及函数

Makefile中的变量此处的变量不是CC,Java等中的变量(认为他是一个字符串就阔以了)一般变量名用大写字母来写,如

Makefile中的变量

此处的变量不是C/C++,Java等中的变量(认为他是一个字符串就阔以了)

一般变量名用大写字母来写,如下所属:

SUBDIR = src xml
SUBDIR += osapi

(感觉这个和Qt里面的pro加模块的差不多)

echo命令,这条命令和php中的echo差不多

定义一个SUBDIR变量:
1.用=号定义一个变量,并且赋值(等号两侧可以加一个空格);
2.用+=追加字符串
3.用$(SUBDIR)取得到变量的值(要加小括号)

如下面的Makefile代码:

#this is an annotationSUBDIR=src xml
SUBDIR+=osapitest1:echo $(SUBDIR)

运行截图如下:

注意:在@符号后,就可以不显示命令本身,直接输出

Makefile源码如下:

#this is an annotationSUBDIR=src xml
SUBDIR+=osapitest1:@echo $(SUBDIR)

运行截图如下:

特殊的变量:
$@指代target
$^指代dependencies依赖项列表
$<指代依赖项列表的第一列

Makefile源码如下&#xff1a;

#this is an annotationSUBDIR&#61;src xml
SUBDIR&#43;&#61;osapitest1:&#64;echo $(SUBDIR)test2:echo $&#64;test3: main.cpp first.cpp second.cppecho $^test4: main.cpp first.cpp second.cppecho $<

程序运行截图如下&#xff1a;

 

Makefile中的函数
与C/C&#43;&#43;里面的函数不一样&#xff0c;他是内部预定的函数

 

Makefile中有一些预定义的函数
$(函数名 参数列表)
函数名&#xff1a;Makefile内部自带的函数
参数列表&#xff1a;以逗号分开另&#xff0c;函数名和参数之间以空格分开
例如&#xff1a;
PWD&#61;$(shell pwd)
CXX_SOURCE&#61;$(wildcard ./*.cpp)

 

【注意&#xff1a;Makefile里面好像必须加shell】

如下的Makefile源码&#xff1a;

#this is an annotationSUBDIR&#61;src xml
SUBDIR&#43;&#61;osapiPWD&#61;$(shell pwd)
CXX_SOURCE&#61;$(wildcard *.cpp)test1:&#64;echo $(SUBDIR)test2:echo $&#64;test3: main.cpp first.cpp second.cppecho $^test4: main.cpp first.cpp second.cppecho $

运行截图如下&#xff1a;


推荐阅读
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文深入探讨了在Android应用开发中常见的相机连接故障问题,特别是在RK3288平台和Android 6.0系统上。通过分析具体案例,本文提供了详细的解决方案和应对策略,旨在帮助开发者有效解决相机连接问题,提升应用的稳定性和用户体验。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 利用Swiss数据集进行多元线性回归分析,首先通过散点图矩阵(pairs plot)初步探索各变量之间的关系。接着,绘制残差图以评估模型的拟合效果和假设条件的合理性,进一步诊断和验证模型的有效性。通过这些图形工具,可以更深入地理解模型的性能和潜在问题。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 本文介绍了C语言中指针的基础知识及其初步应用。首先,文章详细解释了如何定义变量和指针,例如通过 `int i, j, k;` 定义整型变量,以及使用 `int *pi, *pj, *pk;` 来声明指向整型数据的指针。接着,探讨了变量和指针的初始化方法,强调了正确的初始化对于避免程序错误的重要性。此外,还简要介绍了指针在数组、函数参数传递等场景中的基本应用,为初学者提供了全面的入门指导。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • 本文详细介绍了在Ubuntu操作系统中使用GDB调试工具深入分析和调试标准库函数`printf`的源代码过程。通过具体步骤和实例,展示了如何设置断点、查看变量值及跟踪函数调用栈,帮助开发者更好地理解`printf`函数的工作原理及其内部实现细节。 ... [详细]
author-avatar
埋葬曾经的一切
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有