概述
在执行make时,如果我们把目标文件objects输出到一个集中的目录,而一个干净的工程(比如刚从git克隆下来的),这个目录可能是不存在的,此时执行make就会报错“Fatal error: can’t create xxx/xxx/xxx.o: No such file or directory”,makefile中可以有两种方法来自动创建这个目录,避免编译报错。
通过目标文件添加依赖
在makefile中给目标文件增加依赖,在依赖中执行mkdir命令来创建目标文件的目录,参考makefile的写法如下:
OBJDIR = obj
MODULES := src src2
...
OBJDIRS := $(patsubst %, $(OBJDIR)/%, $(MODULES))
build: $(OBJDIRS)
echo $^
$(OBJDIRS):
mkdir -p $@
通过嵌入shell命令
通过在makefile中定义个DUMMY变量,该变量中嵌入shell命令来实现,参考makefile如下:
SOURCES:=$(shell find $(SRC)/ -type f -name *.c) #Get all the c files
#Get the files theyre gonna be compiled to
OBJECTS:=$(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(SOURCES))
#Get just the paths so you can create them in advance
OBJDIRS:=$(dir $(OBJECTS))
#call mkdir with the directories (using a dummy var because too much
#trouble to deal with priorities) someone could prob do better
#--parents ignores the repeated and already existing errors
DUMMY:=$(shell mkdir --parents $(OBJDIRS))
2

站心网
概述 在执行make时,如果我们把目标文件objects输出到一个集中的目录,而一个干净的工程(比如刚从git克隆..
为您推荐
彩虹目录列表程序v1.5源码下载
工具源码
2025年03月24日
彩虹目录列表是一款用PHP开发的目录列表程序,无需数据库,安装简单,使用方便。功能特点:在线预览图片、视频、音频、文本文件、Markdown文件、Office文档等自动识别目录下的README.md文件并展示(类GitHub)后台管..
一.2018年回顾和总结(每个人都必须有目标,没有目标的人,那就是在浪费生命。)1.回顾2018年,一年下来,总体来讲,收获还是蛮大的。2.有收获的同时,还有一点点失落,2018年定下的很多目标都是没有完成的。3.没有..
后端开发学习敏捷需求-->专题的目标与价值成效
程序人生
2025年03月15日
专题的目标与价值成效什么是专题公司或企业为了抓住业务机会或者解决痛点问题,而采取的具体的行动和举措专题的目标分析1.业务调研了解目标的预期利用5W2H来进行专题分析what——是什么?目的是什么?作什么工作?专..
.NET 主程序的.dll.config文件有什么用?
程序笔记
2025年01月21日
.dll.config 文件通常是在开发过程中自动生成的,它的主要作用是为某个类库(.dll 文件)提供一个独立的配置文件,以便开发者可以为该类库单独定义或测试配置项。以下是生成 .dll.config 文件的原因和机制:1. 配置..
基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础
程序笔记
2025年01月08日
LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.文档地址:https://liningit.github.io/LnskyDB/开源地址:https://github.com/liningit/Ln..
.NET C#连接FTP实现文件上传下载
程序笔记
2025年01月07日
在 .NET 中可以使用 System.Net.FtpWebRequest 类来连接 FTP 服务器,实现文件上传和下载。以下是实现文件上传和下载的完整代码示例。1. 上传文件到 FTP 服务器using System;using System.IO;using System.Net;class..
.net 通过 HttpClient 下载文件同时报告进度的方法
程序笔记
2025年01月02日
通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsync 可以返回当前读到的长度,将读取到的长度加起来就是已经下载的长度看起来很简单,于是直接给代码private static async Task ..
ASP.NET如何将Views文件夹从项目分离
程序笔记
2024年12月19日
将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..
.NET C# 读取编辑.AVIF图片文件
程序笔记
2024年12月15日
在 .NET 中读取和编辑 .AVIF 图片文件需要特定的库支持,因为 System.Drawing 等内置功能不直接支持 AVIF 格式。目前可以通过以下方式在 .NET 中实现对 AVIF 文件的读取和编辑:方法一:使用 ImageMagick 的 .NET 封..
.NET C# SkiaSharp读取.AVIF图片文件报错
程序笔记
2024年12月14日
SkiaSharp 目前对 .AVIF 格式的支持可能依赖于具体的版本和底层库的配置。如果在使用 SkiaSharp 时尝试读取 .AVIF 文件报错,以下是一些可能的原因和解决方案:1. 检查 SkiaSharp 的版本SkiaSharp 的支持功能取决于..

如何让AI写出Google认可的文章?
程序笔记
2024年12月11日
让 AI 写出 Google 认可的文章,核心在于满足 Google 的搜索排名算法要求。这些要求通常围绕以下几个关键点展开:内容质量、用户体验 和 SEO 优化。以下是详细指导:一、内容质量确保文章原创且有价值避免抄袭:Goog..
无法加载文件或程序集 'XXXXX' 或其依赖项。访问被拒绝
程序笔记
2024年12月09日
遇到 “无法加载文件或程序集 'XXXXX' 或其依赖项。访问被拒绝” 错误时,通常是由于权限问题或文件夹、程序集引用配置不当所引起。下面是一些常见的原因及解决方法:1. 文件或程序集权限问题如果服务器或..
如何从.NET Framework迁移到.NET Core或.NET 6/7?
程序笔记
2024年12月05日
从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..
如何优化ASP.NET Core应用的性能?
程序笔记
2024年12月05日
优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..

微软 .NET 9 正式发布!专为云原生和生成式 AI 应用设计
程序笔记
2024年11月14日
微软正式发布了 .NET 9,这是一次重大的版本更新。微软在 .NET 9 中带来了一系列新特性和改进,主要聚焦在性能优化、云原生支持、AI集成以及开发者体验的提升。以下是一些重要的更新亮点:性能改进:在 .NET 9 中,..

chrome 开发者工具如何查看元素:hover时的样式
程序笔记
2024年11月06日
在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

ideogram.ai 人工智能AI图片生成工具网站
程序笔记
2024年10月24日
Ideogram是一个由前Google Brain员工创立的AI绘画工具,它能够根据文本生成各种风格的图像,尤其擅长准确生成文本内容和抽象图标。Ideogram官网地址:https://ideogram.ai/loginIdeogram是由前Google Brain员工在202..
.NET 9 即将推出的功能Task.WhenEach
程序笔记
2024年10月23日
.NET 爱好者!我刚刚偶然发现了一个非常酷的新 PR,它被合并到 .NET 运行时存储库中,我想分享一个例子。希望您能为新的 .NET 版本大肆宣传!在即将到来的 .NET 9 版本中,我们预计会有一个名为 .它在这里让您的异步..

针对 Go 语言开发的 SQL 驱动模拟库
程序笔记
2024年10月23日
数据库交互是几乎所有应用程序不可或缺的一部分,开发者们常常需要对数据库进行各种操作,包括插入、更新、删除和查询等。然而,在开发过程中直接对真实数据库进行操作不仅耗时耗力,还可能带来数据一致性和安全性的..

文件上传JavaScript库FilePond使用教程
程序笔记
2024年10月23日
传统的文件上传控件往往显得笨拙且不够用户友好。FilePond的出现,为Web文件上传带来了革命性的改变。本文将详细介绍FilePond这一JavaScript库,探讨它如何优化文件上传流程,并提供无与伦比的用户体验。什么是FileP..