JJJ:Makefile 添加

makefile如何写一个工程化的项目,语法是怎么样的? 所以虽然两个符号的意思有点沾边,但是他们的工作方式时完全不一样。 阅读详情
  • make -C dir 和 make -f filename 的区别
    -C 选项
    Makefile中 -C 是递归调用子目录中的Makefile,-C 选项后跟目录,表示到子目录下执行子目录的Makefile,顶层Makefile中的 export的变量 还有 make默认的变量 是可以传递给子目录中的Makefile的。
    -f 选项
    顶层Makefile使用 make -f 调用 子目录中的文件(文件名可以随意,不一定用Makefile作为文件名) 作为Makefile,顶层Makefile中的export的变量 也可以传递变量到底层目录,另外在命令行中加入变量赋值选项,将覆盖顶层Makefile中export的变量。

但是,经测试,在顶层Makefile中使用 -f 选项,例如 make -f ./xxx/xx/build.mk 此时make命令的工作目录仍然是顶层目录,即CUDIR变量 依然是 ./目录 而不是 ./xxx/xx/目录。

#:~/test$ cat make/Makefile
MM:
        @echo `pwd`
        @echo $(CURDIR)
#:~/test$
#:~/test$ make -C make
make: Entering directory '/home/j30022395/test/make'
/home/j30022395/test/make
/home/j30022395/test/make
make: Leaving directory '/home/j30022395/test/make'
#:~/test$
#:~/test$ make -f make/Makefile
/home/j30022395/test
/home/j30022395/test
#:~/test$
  • Makefile中调用函数的方法:$(call 要调用的函数,函数的参数)。

  • CURDIR 变量
    CURDIR 是 Makefile 中的一个变量:表示当前目录下。
    在 Makfile 中使用 $(CURDIR)

  • export 和 unexport
    如果你要传递变量到下级 Makefile 中,那么你可以使用这样的声明:export <variable ...>
    如果你不想让某些变量传递到下级 Makefile 中,那么你可以这样声明:unexport <variable ...>

  • make -s 中 -s 选项
    1、如下的Makefile:

mytest:
    echo CURDIR = $(CURDIR)
    echo MAKE_VERSION = $(MAKE_VERSION)

2、make 执行结果:

jl@jl-virtual-machine:~/test$ make 
echo CURDIR = /home/jl/test
CURDIR = /home/jl/test
echo MAKE_VERSION = 4.1
MAKE_VERSION = 4.1
jl@jl-virtual-machine:~/test$ 

3、make -s 执行结果:

jl@jl-virtual-machine:~/test$ make -s 
CURDIR = /home/jl/test
MAKE_VERSION = 4.1
jl@jl-virtual-machine:~/test$ 

make -s 不打印make执行指令本身,但是 echo 的话会打印执行结果,一般类似于删除、编译这些操作是不会有log产生的
4、类似于用 make 执行如下的 Makefile:

mytest:
    @echo CURDIR = $(CURDIR)
    @echo MAKE_VERSION = $(MAKE_VERSION)
  • make -f 其它目录的一个Makefile
    就相当于将这个 其它目录的一个Makefile,cpoy到当前目录下,执行 make

  • 添加1个 FORCE 伪目标,每次编译的时候都会强制重新编译。

PHONY += FORCE
FORCE:
通达信源码-主力建仓-AI投研图灵室出品 AI投研图灵室1:=3*SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)-2*SMA(SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),15,1);AI投研图灵室2W:=100-100*(HHV(HIGH,14)-CLOSE)/(HHV(HIGH,14)-LLV(LOW,14));AI投研图灵室3:=SMA(SMA(AI投研图灵室2,3,1),3,1); 阅读详情

相关推荐

开源实战 | 基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程

本文详细介绍了基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程,涵盖从基础概念到实战技巧的各个环节。通过SolidWorks建模、Matlab运动学实现及轨迹优化策略,展示了如何实现高精度轨迹规划,适用于摄影、医疗等领域的机器人应用。

weixin_28331555的博客 401

c11语言编译器,GNU C编译器的gnu11和c11

国际标准组织发布c11后,gnu为自己的编译器发布两种标准gnu11和c11gnu11:带gnu c扩展的c11标准,如果你的代码包含了typeof,__attribute__等等gnu的扩展,就必须用这个。c11:这个就是纯c11的标准,不带gnu扩展。可以在Makefile中声明:CFLAGS=-std=gnu11 -g -Wall或者,纯标准的c11,玩linux的要慎用,因为linux代码...

weixin_36385884的博客 2219

DFT ATPG提升coverage的方法

采用更精确的故障模型,如桥接故障模型(用于描述电路中不应连接的节点之间的短路故障)和路径延迟故障模型(考虑信号在电路路径上的传输延迟),可以使ATPG工具生成更有效的测试向量来覆盖这些特殊故障。假设电路中有一个与门的输入引脚存在固定为0的故障(stuck - at - 0),D - 算法会分析与门的其他输入以及与门输出连接的后续电路逻辑,从而确定整个电路的输入值,使得当该故障存在时,电路的输出与无故障时不同。通过增加测试向量的类型,如功能测试向量和结构测试向量的结合,可以提高故障覆盖率。

Loving_enjoy的博客 966

设置文件编译规则的makefile---配置编译器环境的c_pp_properties.json---设置的文本配置seting.json

1看看书《跟我一起写Makefile》 CROSS_COMPILE ?= arm-linux-gnueabihf- TARGET ?= lcd CC := $(CROSS_COMPILE)gcc LD := $(CROSS_COMPILE)ld OBJCOPY := $(CROSS_COMPILE)objcopy OBJDUMP := $(CROSS_COMPILE)objdump LIBPATH := -lgcc -L /usr/local/arm/gcc-lina

weixin_55255438的博客 2543

单细胞测序数据整合

基于Seurat 联合harmony进行单细胞数据整合分析

G2530051386的博客 9789

惯性导航原理(九)-INS的初始对准-初始姿态确定+双矢量定姿

文章目录INS的初始对准INS初始化静基座/静态粗对准静态粗对准—加速度计调平原理加速度计调平静态粗对准—陀螺罗盘思考初始对准的影响因素双矢量定姿原理静态解析粗对准—双矢量定姿静态解析粗对准(续)其它初始对准方法精对准动对准 INS的初始对准 INS的初始对准为初始化的一部分 INS初始化 初始位置: 给定(INS没有初始位置确定的能力,例如从GPS ) 初始速度: 零(静止状态)或给定 初始姿态: 初始对准(INS有能力自己测资态) 粗对准vs. 精对准 静止状态vs. 运动状态 重要性: 失之毫厘,谬

十八与她的博客 1万+

makefile速通

在 Makefile 中,通常会在编译规则中使用。在 Makefile 中使用 CFLAGS。赋过值跳过,否则赋值。

嵌入式修炼师的博客 592

告别信号毛刺!手把手教你用ADS和IBIS-AMI模型搞定PCIe Gen3眼图仿真

本文详细介绍了如何使用Keysight ADS和IBIS-AMI模型进行PCIe Gen3眼图仿真,解决高速信号传输中的信号质量问题。从仿真环境搭建、S参数预处理到眼图优化与故障排除,提供了一套完整的工程实践指南,帮助工程师提升PCIe Gen3接口的信号完整性。

weixin_28366053的博客 361

qmake:变量手册

qmake 的基本行为受定义每个项目构建过程的变量声明的影响。

szembed的博客 1万+

mysql 计算不同胜率的活跃玩家的次日,3日,7日留存率

它根据每天的日期(logymd)和最高段位(max_rank)、胜率段落(win_rate_segment)进行分组,并计算总玩家人数(total_players)、第二天的留存人数(next_day_players)、第三天的留存人数(day3_players)和第七天的留存人数(day7_players)。注意:不是新手留存,是段位活跃玩家留存;最终的结果则是将留存数据进行展示,按照日期(date)、最高段位(rank_level)、胜率段落(win_rate_segment)进行排序。

weixin_42698221的博客 1833

5.44GHz超高精度!STM32G474的HRTIM时钟配置避坑指南

本文深入解析STM32G474内置高分辨率定时器的时钟配置要点,帮助工程师避开常见陷阱。文章详细阐述了从系统时钟到5.44GHz等效时基的路径,重点分析了预分频器乘法器、周期计算溢出、影子寄存器同步等关键配置,并结合实测波形对比,确保HRTIM在电机控制、数字电源等精密应用中发挥极限性能。

book8的博客 522

[makefile学习笔记]有关makefile中条件判断执行细节的一些讨论

在常规的makefile条件判断当中,大多数人讲解仅限于一个条件判断+一个目标的简单演示,但是实际上复杂程度远不止于此,相信这篇文章可以解开你的疑惑.

u012686596的博客 737

基于matlab的图像HOG特征提取算法仿真

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 730

import c++ project to eclipse cdt with exiting makefile

Step 2: You are now ready to build your project. To build your project, select Project > Build Project. You can also hit the hammer icon build icon on the toolbar to build the selected project...

didui8202的博客 130

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Makefiles in Linux

http://www.codeproject.com/Articles/31488/Makefiles-in-Linux-An-Overview 转载于:https://www.cnblogs.com/jjj250/p/3245086.html

didui8202的博客 90

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

makefile如何添加c++11标准?

在使用G++编译单个文件时,如果需要c++11标准的支持,直接在编译命令添加-std=c++11。 但是,如果是多个文件联合编译时,使用makefile文件,怎么添加c++11标准? 两种方式: 1)在makefile文件中的每个g++命令中加上-std=c++11;如下: hw07: test.o functions.o g++ -std=c++11 test.o functions.o -o hw07 test.o: test.cpp headerfile.h g++ -std=c++1

喜欢吃冰棍de谷利文君的博客 1万+

解决makefile添加了-std=c++11还是用不了C++11

结果就是报错显示一些C++11的新标准未定义,如unique_ptr,经实验问题出在编译选项 -这个问题一般都是没有添加编译标准或者没有包含头文件造成,但是今天又发现一个坑。

m0_62116886的博客 661

Makefile概述

Makefile概述欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

Hundreays 352

记:由浅入深Makefile学习

记:由浅入深Makefile学习Makefile1.1. 书写规范1.2. 变量1.3 隐含规则1.4. 通配符/^//@/$<1.5 多级目录下Makefile Makefile "#"在Makefile中是注释 gcc/g++的常见指令 gcc -c #选项:只编译不链接,仅生成目标文件 gcc -o #选项:指定输出文件 -o tag obj / obj -o tag gcc -O...

waveluozu的博客 326

【LKM】makefile的支持c99的方法: ccflags-y := -std=c99

如果写的LKM中 变量的定义在 函数之后,则会warning: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 正常在gcc中添加-std=c99即可。例如: gcc -std=c99 1.c -o 1 如果是在Makefile中,添加这一行: ccflags-y := -std=gnu99 -Wno-declaration-after-statement # ccflag.

think_ycx的专栏 9502

Makefile

Makefile 常用规则 wildcard one use of the wildcard function is to get a list of all the C source files in a directory. //获取当前目录下全部.c文件-test.c hello.c $(wildcard *.c) patsubst we can change the list of c source files into a list of object files by replacing

Jun's blog 308

Makefile学习笔记

Linux Makefile学习笔记 学习Makefile的资料 1. 《跟我一起写makefile》 2. 《GUN make manual》 3. 《GNU Make项目管理(第三版)》 说明: 《跟我一起写makefile》可以被认为是《GUN make manual》的简化版或者说是学习笔记,适合入门学习。 《GUN make manual》可以当做参考手册,平时查阅。 《...

ARM-Linux 2099

gcc/makefile/shell编译详解

gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步: 1、预处理,生成 .i 的文件[预处理器cpp] 2、将预处理后的文件转换成汇编语言, 生成文件 .s [编译器egcs] 3、有汇编变为目标代码(机器代码)生成 .o 的文件[汇编器as] 4、连接目标代码, 生成可执行程序 [链接器ld] -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C语言的后缀名称是

wangbuji的博客 1747

makefile常用编译选项

我们习惯创建一个环境变量文件Inc.mk来定义常用的变量 CC = gcc CXX = g++ -std=c++11 AR ?= ar ARFLAGS = -scurv RANLIB ?= ranlib CFLAGS ?= CXXFLAGS ?= INCLUDE ?= LDFLAGS ?= CFLAGS += -Wall -g -fPIC -pipe -Wl,-z -Wl,defs -...

Linux C/C++后台开发 8355

实用的GCC Makefile语法及参数详解

实用的GCC Makefile语法及参数详解

yangsong4353的博客 2121

使用make执行makefile的时候指定std编译模式

make CFLAGS=-std=c99

qq_41111734的博客 1773

cmake增加-std=c++11,-std=c++14,-std=c++17选项

cmake生成makefile增加c++版本选项,命令如下: # 增加-std=gnu++11 cmake . -DCMAKE_CXX_STANDARD=11 <path-to-source> # 增加-std=gnu++14 cmake . -DCMAKE_CXX_STANDARD=14 <path-to-source> # 增加-std=gnu++17 cmake . -DCMAKE_CXX_STANDARD=17 <path-to-source> ...

lsheevyfg的专栏 1万+
上一篇: 2.3 核心模块和应用程序的对比
下一篇: JJJ:linux 源码 uapi 目录
你板子冒烟了
博客等级 码龄8年 1278粉丝 582原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值