跨目录makefile

通用Makefile的编写和在项目工程中使用Makefile(包括动态库、静态库的链接、整个工程联合编译) 一、通用Makefile文件的编写        (1)、什么是通用Makefile?                     这里的通用Makefile指的是它既能编译可执行文件、也能编译动态链接库、又能编译静态库,只需要更改很少的内容即可。        (2)、写一个通用Makefile #-------------------------配置区域------ 阅读详情

VPATH = sub

CXXFLAGS = -I sub/

## 利用makefile的默认规则。  AAA.o肯定依赖于AAA.cc。而且会自动执行g++ -c AAA.c

main: main.o sub.o adder.o

    g++ -o ......

main.o:adder.h sub,h

adder.o: adder.h

sub.o: sub.h

 

clean:

    rm main *.o

 

目录结构

/ main.cc

/ main.h

/adder.cc

/adder.h

/sub/

      sub.cc

      sub.h

 

告别‘No rule to make target’:手把手教你用VPATH和vpath解决Makefile跨目录编译难题 本文深入解析Makefile中VPATH和vpath的使用方法,帮助开发者解决跨目录编译时常见的'No rule to make target'错误。通过实战示例和性能对比,详细介绍了如何利用这两种机制高效管理多目录项目,提升编译效率,并提供了调试技巧与现代构建系统的结合方案。 阅读详情

相关推荐

别再被Makefile路径坑了!用$(MAKEFILE_LIST)和$(abspath)搞定跨目录编译

本文深入解析Makefile在跨目录编译时的路径处理难题,提出使用$(MAKEFILE_LIST)和$(abspath)组合方案实现精准路径定位。通过实战案例展示如何构建跨目录免疫的编译系统,解决嵌入式开发中设备树编译、内核模块构建等场景的路径混乱问题,提升Makefile的可靠性和可维护性。

weixin_28676289的博客 198

make命令和Makefile

在Linux下做开发,灵活的使用make指令是必不可少的。概述 make命令读取makefile文件,确定重建目标所需的最少命令,并以正确的方式执行它们。其实就是方便我们在改动依赖文件后重新生成目标文件。主要是用来解决文件之间的依赖关系管理的。 语法 依赖关系和规则(要求以tab开头,每一条规则都在一个新的shell子进程中执行),宏(用来收集和系统相关信息的好方法,提高移植性),内置规则的添加

jason的专栏 477

makefile编写不同目录下的文件的方法

整体目录结构: //hello.c #include"myhead.h" int main(void) { printf("hello world\n"); return 0; } include文件夹下放着 myhead.h文件,myhead.h文件的内容如下 #include<stdio.h> makefile文件的内容如下: hello:hello.o gcc...

qq_38158479的博客 1890

两种Makefile

一种Makefile

nyist327的专栏 980

从零到英雄:WSL2与Ubuntu22.04的终极性能调优指南

本文详细介绍了如何在Windows系统中通过WSL2与Ubuntu22.04进行性能调优,涵盖内核定制、GPU加速、网络优化等关键技巧,帮助开发者打造媲美原生Linux的高性能开发环境,特别适合AI训练和大数据处理等资源密集型任务。

weixin_29218509的博客 523

ESP32+micro-ROS机器人开发实战:轻量级ROS2嵌入式集成

ROS2是现代机器人软件栈的核心框架,其基于DDS的分布式通信与QoS保障能力为多节点协同提供基础支撑;而micro-ROS作为专为微控制器优化的ROS2兼容中间件,解决了资源受限设备(如ESP32)接入ROS2生态的关键难题。其通过分层架构将DDS通信下沉至上位机Agent,使MCU仅需运行轻量Client,大幅降低内存开销(实测<180KB)并保留标准ROS2接口语义。该方案广泛应用于教育机器人、移动底盘、传感器节点等嵌入式场景,尤其适合基于ESP-IDF开发的Wi-Fi/BLE物联网机器人系统。本文以

weixin_29025501的博客 399

多级目录的makefile编写及参数传递

目录 makefile使用说明:http://www.cnblogs.com/wang_yb/p/3990952.html 一、多级目录结构 二、各级Makefile内容 三、各级Makefile参数传递 一、多级目录结构 当前文档依据以下目录结构描述和书写;涉及到了KO的编译,用户层应用编译makefile的编写和调用。                     二、各级Makef...

Your Dream Started 9281

EPLAN中3D宏文件的创建与优化技巧(以开关电源为例)

本文以开关电源为例,详细讲解了在EPLAN中创建和优化3D宏文件(.ema)的全流程。从搭建宏项目、导入模型,到精确定义安装面、调整视野方向,再到定义3D连接点并关联部件库,旨在帮助电气工程师在设计阶段实现精准布局、避免安装冲突,从而提升设计效率与质量。

weixin_29219539的博客 547

【已解决】一个makefile中export出来的变量在另外一个makefile中无法访问

【问题背景】 一个大的系统,通过一个总的make控制整个项目编译过程。 具体make的流程是,在/make下面直接make,会先去make uboot,再去make kernel,然后去make其他的,比如drivers等等。 遇到的问题是,由于是使用交叉编译器,对应的交叉编译器的路径,是在uboot中定义的,所以uboot是可以正常交叉编译的。 但是编译完uboot,转去

yuyin86的专栏 3293

价值投资/指标选股(akshare)

利用akshare的数据源,可以获取所有的股票数据以及公开的财务数据,可以进行条件筛选,获取满足条件的股票。 这套模板可以用于价值投资,指标选股。选股周期为日线级别。然后结果可以邮箱发送。 import time import akshare as ak ## A 股上市公司的实时行情数据 stock_zh_a_spot_df = ak.stock_zh_a_spot() #print(stock_zh_a_spot_df) ##取前300测试 ##取前300测试 df_stock =...

qq_26742269的博客 1万+

用c++生成随机迷宫_自动生成随机迷宫(1)prim算法

“程序 = 数据 + 算法”,一款好的作品不单单是代码的堆砌,还有其灵魂的部分,那就是算法;算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法既然是解决某类型问题的规范,那么我们就学习它,并在我们的作品中使用它。从这一期开始做一个迷宫系列,包括用算法生成随机迷宫,用算法自动寻址走迷宫。 三大迷宫生成算法之一“随机Prim算法不是...

weixin_31787547的博客 2596

Makefile环境变量与导出:跨目录构建的终极指南

想要掌握复杂的项目构建?Makefile环境变量与导出功能是您实现跨目录构建的终极利器!🚀 在大型项目中,如何让不同的Makefile之间共享配置?如何确保子目录能够访问父级的变量设置?本文将带您深入探索Makefile环境变量的奥秘。 ## 什么是Makefile环境变量? 当Make启动时,它会自动将所有**环境变量**转换为Make变量。这意味着您可以在Makefile中直接使用系统环

gitblog_01036的博客 514

VMFS数据存储(datastore)丢失后恢复步骤

vmfs datastore恢复步骤

jetliu05的博客 3267

linux makefile 多目录,[Linux][Makefile] 基础--跨目录

CROSS=CROSSCFLAGS=PLATFORM=ifdef CROSSendifCC=$(CROSS)gccCXX=$(CROSS)g++AR=$(CROSS)arSTRIP = $(CROSS)strip -R .commentDYLIB = soMAKE = makeCFLAGS = -Wall $(CROSSCFLAGS) -fsigned-charCXXFLAGS = -Wall $...

weixin_36474966的博客 418

SAP BTP ABAP environment 集成本地系统实践:Cloud Connector、Connectivity service 与隧道通信全解析

摘要: 随着ABAP开发者向云端扩展业务逻辑,如何安全访问企业内网SAP系统成为关键问题。本文基于SAP官方文档,解析通过Cloud Connector和Connectivity service实现云端ABAP环境与本地系统集成的方案。 架构上分为四个角色:ABAP环境、Connectivity服务、Cloud Connector和内网系统。Cloud Connector作为内网出口,通过TLS隧道主动连接云端,避免防火墙开放入站端口。Connectivity服务则作为子账户级“总机”,自动路由请求。 实施

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 308

一文搞懂LDO !

Start-up 时间是 IC 做死的,如果想要延时启动,最简单的办法是在 EN 上接一个大一些的电容到地,构成一个简单的 RC 电路。电容太小,电压跌落大,响应快。输出电流高,功率大;外围器件少,电路简单,成本低,负载响应快,输出纹波小;将采集的电压输入到比较器反向输入端,与正向输入端的基准电压(期望输出的电压)进行比较,再将比较结果进行放大;是指在给定负载变化下的输出电压的变化,这里的负载变化通常是从无负载到满负载。芯片的静态电流大小与其他性能成反关系,如低噪声,高电源电压抑制比,静态电流大。

weixin_46969363的博客 4382

makefile包含库目录_如何获取包含其他Makefile的Makefile目录

makefile包含库目录I experience this problem: 我遇到这个问题: I have a file common.mk that includes release.mk which in the same directory. common.mk is included by the top-level Makefile. common.mk and release.m...

cuma2369的博客 813

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

makefile中的VPATH

通常程序并不只存放在同一个目录下,例如: ├── include │   ├── bar.h │   └── foo.h ├── Makefile └── src     ├── bar.c     ├── foo.c     └── main.c 代码分别如下: /* bar.h */ #ifndef __BAR_H #define __BAR_H   extern void bar(void)...

qq_34093974的博客 3969

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

mini2440c文件嵌套汇编语言,makefile 嵌套执行

int main(){hello();return 0;}4. 在此目录中建立文件mkdir home5。cd home6。再次建立一个c源文件vim b.c内容如下:#includevoid hello(){printf("hello\n");}7。然后在这个目录中创建Makefile,vim Makefile内容如下b.o:b.ccc -c -o b.o b.c8。回到上层目录cd ..9。编...

weixin_28703451的博客 173

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

makefile文件和子目录

平常使用小项目的时候,一般就把源文件,头文件放在makefile的同一目录进行编译,但是对于大型的项目,我们会将构成一个函数库的

837

Makefile与CMake

避免 Make 将目标视为同名文件,强制执行命令。三、Makefile和CMake的具体案例。与 Makefile 案例完全相同。二、CMake 核心内容。

m0_74186706的博客 2012

makefile中的使用 VAPTH 和“自动变量”指定目标文件的存放目录

ThevalueofthemakevariableVPATHspecifiesalistofdirectoriesthatmakeshouldsearch.Mostoften,thedirectoriesareexpectedtocontainprerequisitefilesthatarenotinthecurrent...

weixin_33921089的博客 151

automake跨目录和自定义参数

automake的基本用法在IBM官网有很好的说明: http://www.ibm.com/developerworks/cn/linux/l-makefile/   下面的内容是我总结的“如何在跨目录和自定义参数的情况下使用automake”   关于跨目录:          假设在本目录下还有个test目录,这两个目录都有需要编译的文件,也就是说都需要automake。

xueyingxue001的专栏 1885

常用makefile的一些模板

模板一: 源文件,.h个在一个文件夹下生成可执行文件: DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./lib DIR_PUB = ./pub DLIBS = -O2 -Wall SRC = $(wildcard ${DIR_SRC}/*.c) OBJ = $(patsubst %.c,${DIR_OBJ}/%.o,$(notdir ${SRC})) TARGET = xxx BIN_TARGET = ${DIR

嵌入式开发专栏 189

Makefile 使用总结

Makefile 使用总结 https://www.cnblogs.com/wang_yb/p/3990952.html makefile $@, $^, $<, $? https://www.cnblogs.com/gamesun/p/3323155.html Makefile之编译多个可执行程序 https://blog.youkuaiyun.com/ab455373162/a...

happylzs2008的专栏 169

步步解析编写makefile

目的:        基本掌握了 make 的用法,能在Linux系统上编程。 环境:        Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。 准备:        准备三个文件:file1.c, file2.c, file2.h        file1.c:               #include

《我是你的正能量》 1305
上一篇: 关于main函数是否该放在public类中
下一篇: 解压与打包\查看文件大小
eric_arrow
博客等级 码龄14年 65粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值