当前位置:网站首页>makefile学习-解决目标文件输出路径问题
makefile学习-解决目标文件输出路径问题
2022-08-09 09:20:00 【y_dd】
makefile不指定目标文件路径的话,默认生成在makefile的当前路径下,链接的时候如果按照依赖路径找就会报错,记录下如何解决这个问题。如下图 makefile,需要编译的在com 以及makefile所在的路径的文件
makefile中使用函数寻找.cc和.o文件
sources=$(shell find comm/*.cc) echo.cc
ob = $(patsubst %.cc, %.o, $(sources))
此时ob是 comm/a.o com/b.o
因为makefile生成的.o在当前路径下,而非comm下,下面这个链接就会报错
server:$(ob)
g++ $(ob) -o server
方案一:makefile链接.o路径修改下
objects = $(notdir $(ob)) 去掉多了的comm
sources=$(shell find comm/*.cc) echo.cc
#把.cc文件名替换成.o文件名
ob = $(patsubst %.cc, %.o, $(sources))
#链接的路径去掉目录,就只剩.o的名字
objects = $(notdir $(ob))
head = comm
all: server
$(objects):$(sources)
g++ -std=c++11 -c $^ -I$(head)
方案二,可以修改.o的输出路径
.cc.o:
$(CC) $(CFLAGS) $(APPINC) $(INCLUDES) -c $(OBJDIR)/$*.cpp -o $(OBJDIR)/$*.o
边栏推荐
- 进入大厂的面试经验(P7)
- MySQL lock
- TypeScript简记(一)
- Redis高可用
- 全网最全的软件测试基础知识整理(新手入门必学)
- 银联最新测试工程师笔试题目,你能得多少分?
- The era of Google Maps is over, how to view high-definition satellite image maps?
- 恶意软件查杀工具分享
- A first look at the code to start, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the first time to run the golang program EP01
- MVCC多版本并发控制
猜你喜欢
随机推荐
接口测试主要测试哪方面?需要哪些技能?要怎么学习?
测试用例的原则、缺陷报告怎么写你都知道吗?
本体开发日记03-排错进行时
Lecture 4 SVN
C语言单、双引号的区别
MVCC multi-version concurrency control
银联最新测试工程师笔试题目,你能得多少分?
教你如何免费获取0.1米高精度卫星地图
【环境搭建】tensorrt
MySQL查漏补缺(四)存储过程和游标
一个项目的整体测试流程有哪几个阶段?测试方法有哪些?
按字节方式和字符方式读取文件_加载配置文件
AES/ECB/PKCS5Padding加解密
Read file by byte and character_load configuration file
Django实现对数据库数据增删改查(二)
Redis Basics
The era of Google Maps is over, how to view high-definition satellite image maps?
AES/ECB/PKCS5Padding encryption and decryption
centos7 mysql异常ERROR 2002 (HY000)分析解决
Ontology Development Diary 01-Jena Configuration Environment Variables