当前位置:网站首页>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
边栏推荐
猜你喜欢
Amplify Shader Editor手册 Unity ASE(中文版)
centos7 mysql异常ERROR 2002 (HY000)分析解决
Another implementation of lateral view explode
on duplicate key update
“摄像头用不了”+win8.1+DELL+外置摄像头+USB免驱的解决办法
本体开发日记03-排错进行时
MySQL indexes
Redis high availability
Venture DAO Industry Research Report: Macro and Classic Case Analysis, Model Summary, Future Suggestions
对于栈、递归的关系的理解
随机推荐
恶意软件查杀工具分享
约瑟夫问题的学习心得
性能测试的基本概念是什么?做好性能测试需要掌握哪些知识?
lateral view explode的另一种实现方式
【分布式事务】
AES/ECB/PKCS5Padding encryption and decryption
一篇文章让你彻底搞懂关于性能测试常见术语的定义
mysql优化——show processlist命令详解
Django实现对数据库数据增删改查(二)
MySQL索引
本体开发日记05-努力理解SWRL(RDF Concrete Syntax)
历史遗留问题
接口测试的基础流程和用例设计方法你知道吗?
软件测试的流程规范有哪些?具体要怎么做?
使用Protege4和CO-ODE工具构建OWL本体的实用指南-1.3版本(4.Building An OWL Ontology)
MySQL Leak Detection and Filling (2) Sorting and Retrieval, Filtering Data, Fuzzy Query, Regular Expression
Redis Basics
shell 定时监控并处理脚本
When and How to use MALLOC
手机APP测试流程规范和方法你知道多少?