首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

包含子目录的Makefile找不到标头

Makefile是一种用于自动化构建和编译程序的工具,它通过定义一系列规则来描述源代码文件之间的依赖关系和编译过程。当Makefile中包含子目录时,可能会出现找不到标头文件的问题。

解决这个问题的方法有以下几种:

  1. 确保Makefile中正确设置了子目录的路径。在Makefile中,可以使用变量来表示子目录的路径,例如:
代码语言:txt
复制
SUBDIRS = subdir1 subdir2

然后,在编译规则中使用这些变量来指定子目录的路径,例如:

代码语言:txt
复制
$(SUBDIRS):
    $(MAKE) -C $@
  1. 确保子目录中的Makefile正确设置了标头文件的路径。在子目录的Makefile中,可以使用变量来表示标头文件的路径,例如:
代码语言:txt
复制
INCLUDES = -I../include

然后,在编译规则中使用这些变量来指定标头文件的路径,例如:

代码语言:txt
复制
$(TARGET): $(OBJS)
    $(CC) $(CFLAGS) $(INCLUDES) -o $@ $^
  1. 确保标头文件的路径在编译器的搜索路径中。可以通过在Makefile中设置编译器选项来指定标头文件的搜索路径,例如:
代码语言:txt
复制
CFLAGS = -I../include

这样,编译器在查找标头文件时会在指定的路径中进行搜索。

  1. 确保标头文件的命名和路径正确。检查Makefile中对标头文件的引用是否正确,包括文件名和路径是否与实际文件相匹配。

总结起来,解决包含子目录的Makefile找不到标头的问题,需要确保Makefile中正确设置了子目录的路径,子目录的Makefile正确设置了标头文件的路径,标头文件的路径在编译器的搜索路径中,以及标头文件的命名和路径正确。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过 HTTP XSS

但不幸是,一旦攻击者无法让受害者在实际 XSS 攻击中编辑他/她自己 HTTP ,那么只有在攻击者有效负载以某种方式存储时才能利用这些场景。...\n”; 正如我们在下面看到,在带有 -i 标志命令行中使用 curl,它会向我们显示响应 HTTP 以及包含我们请求 JSON。...由于我们在这篇博客中使用 WAF 提供最后一个“x-sucuri-cache”,我们需要在 URL 中添加一些内容以避免缓存,因为该值是“HIT”,这意味着它即将到来来自 WAF 缓存。...因此,通过添加“lololol”,我们能够检索页面的非缓存版本,由 x-sucuri-cache 值“MISS”指示。现在我们将注入我们自己(带有 -H 标志)以检查它是否在响应中出现。...但仅对我们而言,因为我们通过终端发送该。它不会出现在浏览器、其他人甚至我们自己请求中。 发出了另一个请求(在“日期”检查时间),但似乎没有什么区别。

2K20

通过主机 XSS

Location 看起来并不正确......所以这是 IE 所做: GET /login.phphp/ HTTP/1.1 Accept: text/html, application/xhtml+...图片说明了一切: image.png 继续前进,您可能会期望服务器会倾向于以 400 Bad Request 响应这样一个奇怪 Host 。这通常是真的.........image.png 但幸运是,Google 在处理 Host 时存在一些怪癖,可以绕过它。 怪癖是在主机头中添加端口号。它实际上没有经过验证,您可以在冒号后放置您喜欢任何字符串。...好,让我们继续讨论 Google CSE XSS。它看起来就像这样: 主机清楚地反映在响应中,无需任何编码。...3a443%2fcse%2ftools%2fcreate_onthefly%3b% 3c%2ftextarea%3e%3cscript%3ealert(1)%3c%2fscript%3e 期望下一个请求将包含以下主机

1.5K10

C++ 中随机系列1

这是我参与「掘金日新计划 · 12 月更文挑战」第1天,点击查看活动详情 此引入了随机数生成功能。该库允许使用生成器和分布组合生成随机数。 生成器:生成均匀分布数字对象。...分布:将生成器生成数字序列转换为遵循特定随机变量分布(如均匀、正态或二项式)数字序列对象。 发电机 一、伪随机数引擎: 他们使用一种算法根据初始种子生成随机数。...operator(): 它返回一个新随机数。 引擎转换算法根据需要多次调用基础引擎 operator() 成员,以获得足够有效位来构造随机值。...该对象在内部保留一个由 k 个生成数字组成缓冲区,并在请求时返回缓冲区内随机选择数字,并将其替换为从其基本引擎获得值。 operator(): 它返回一个新随机数。...引擎转换算法在内部表中选取一个值(由函数返回),并将其替换为从其基础引擎获得新值。 max: 它返回operator()给出最大值。 最小值: 它返回 operator() 给出最小值。

1.3K10

使用结构化字段改善HTTP

● 大多数Web开发人员都熟悉HTTP;如Content-Length、Cache-Control和Cookie之类。...因为需要由许多不同客户端和服务器,代理服务和CDN处理(通常在消息生存期内不止一次),所以大家希望它们易于处理,高效解析并且定义明确句法。...例如,他们可以说“这是一个字符串列表”,人们将知道如何使用一个现成库来明确地解析和生成,而不是编写特定于代码。...Example-Header: "blue"; websafe, "sort of red"; author="sue", "green" 递归形式也很有限;列表和字典值也可以包含列表,例如: Example-Header...例如,许多Cache-Control报头都是有效“结构化字段”,即使它没有定义为一个: Cache-Control: max-age=3600, immutable 很不幸你还不能将结构化字段用于现有的

61910

对 Google 说不 - 本站已启用屏蔽 FLoC HTTP

什么是 FLoC FLoC 通过获取浏览器浏览记录将用户加入 “相似” 用户分组内,每个分组拥有对应 FLoC ID。...为什么要抵制 FLoC FLoC 被拒绝原因正是目前第三方 Cookie 逐渐消失原因,我们需要是第三方 Cookie 消失,而不是出现一个类似 (甚至在用于追踪情况下功能更加完善) 替代品...对这项技术测试过程被部署到了大量 Google Chrome 用户身上,而 Google 并没有进行提前公告等工作,以致于大量用户并不了解这项技术。...EFF 这篇博文详细解释了部分细节,如果需要可以尝试阅读一下。...uBlock 等工具进行屏蔽 CloudFlare Browser Insights:CloudFlare 提供网页性能监测工具,不会收集用户特定信息 可以做事 为自己站点添加相关拒绝

84410

qmake:变量手册

例如,以下几行将 path/to/header_one.h 和 path/to/header_two.h 添加到包含有关框架提供信息组中: FRAMEWORK_HEADERS.version...path/to/header_two.h FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS 最后一行将有关信息添加到将与库包一起安装资源集合中...使用此变量指定每个子目录都必须包含其自己项目文件。 建议每个子目录项目文件与子目录本身具有相同基本名称,因为这样可以省略文件名。...允许值为: app:创建用于构建应用程序 Makefile(默认)。 lib:创建用于构建库 Makefile。 subdirs:创建用于在子目录中构建目标的 Makefile。...子目录是使用 SUBDIRS 变量指定。 aux:为不构建任何内容项目创建一个 Makefile。 如果不需要调用编译器来创建目标,请使用此选项。例如,项目是用解释性语言编写

3.5K20

一个通用Makefile(二)

1、各级子目录Makefile: obj-y += file.o obj-y += subdir/ “obj-y += file.o” 表示把当前目录下file.c编进程序里。...framwork子目录下又有libs、manager、services等子目录; 编译过程: Makefile是先从子目录下开始执行: 1> 执行顶层目录makefile程序时,先进入顶层目录,发现有些文件和目录...,将会进入如DSVICICOMSVC/ 2> 进入子目录后,又会发现又有子目录makefile,DSVICICOMSVC、DSVICICOMMGR,执行子目录makefile; 3> 把test.c...make -C ./ -f  Makefile.build    3、顶层目录Makefile.build: 这是最复杂部分,它功能就是把某个目录及它所有子目录中、需要编进程序去文件都编译出来...#包含当前目录makefile,才知道目标是哪些目标和目录 # obj-y := a.o b.o c/ d/ # $(filter %/, $(obj-y))   : c/ d/ # __subdir-y

1.4K111

图解嵌入式系统开发之Makefile

看了好多网文,博客之后,你是否仍然一雾水,这TM到底是怎么联系起来,为什么会有这么多Makefile文件?...我们可以把导出依赖关系保存成一个文件,然后在下次编译时候使用Makefileinclude功能包含该文件。这样就可以自实现只编译被修改文件梦想了。。。。?...主Makefile: 主Makefile一般在源码根目录下, 是执行Make命令读取第一个Makefile文件,该文件中定义了最终产物名字,源文件子目录,启动递归编译,合成最终产物规则,clean...如下: obj-y := main.o obj-y += cmd/ Makefile.build递归到该目录时候首先包含了该目录下Makefile文件,然后读取obj-y值,读到obj-y中 main.o...所以这是一个不断递归过程,进入到一个目录下,通过当前目录下Makefile判断是否有子目录,如果有子目录,就按照同样方式先进入到子目录下去处理。

1.2K40

CmakeList编写和参数详解

大家好,又见面了,我是你们朋友全栈君。 在linux 下进行开发很多人选择编写makefile 文件进行项目环境搭建,而makefile 文件依赖关系复杂,工作量很大,搞的人头很大。...采用自动化项目构建工具cmake 可以将程序员从复杂makefile 文件中解脱出来。...cmake 根据内置规则和语法来自动生成相关makefile 文件进行编译,同时还支持静态库和动态库构建,我把工作中用到东东总结在此,方便忘记时随时查看,具体cmake介绍和详细语法还是参考官方文档...ADD_SUBDIRECTORY(utility) 添加要编译子目录 为工程主目录下存放源代码子目录使用该命令,各子目录出现顺序随意。...(server libutility.a) 否则编译总会提示找不到libutility库文件。

1.5K50

第3阶段——内核启动分析之make menuconfig内核配置(2)

,和.config配置文件非常相似, 它被顶层Makefile包含,被子目录Makefile使用 ?.../drivers/net/ 子目录Makefile中添加DM9000文件到obj-$(CONFIG_DM9000)中,其中CONFIG_DM9000=y,所以编译进内核中. drivers/net/Makefile...auto.conf和autoconf.h这两个文件( 其中autoconf.h是供c源码使用(宏开关),而auto.conf被顶层Makefile包含,供子目录Makefile使用) 2.通过子目录Makefile...得出: 如果auto.conf中CONFIG_xxx=y,对应源码文件会被Makefile编译进内核; 如果auto.conf中CONFIG_xxx=m,对应源码文件会被Makefile编译成xxx.ko...模块文件 如果auto.conf中CONFIG_xxx=n,对应源码文件不会被makefile编译; 接下来分析Makefile来找到内核编译过程,明白make uImage做了什么

1.3K50

第3阶段——内核启动分析之make menuconfig内核配置(2)

,和.config配置文件非常相似, 它被顶层Makefile包含,被子目录Makefile使用 ?.../drivers/net/ 子目录Makefile中添加DM9000文件到obj-$(CONFIG_DM9000)中,其中CONFIG_DM9000=y,所以编译进内核中. drivers/net/Makefile...auto.conf和autoconf.h这两个文件( 其中autoconf.h是供c源码使用(宏开关),而auto.conf被顶层Makefile包含,供子目录Makefile使用) 2.通过子目录Makefile...得出: 如果auto.conf中CONFIG_xxx=y,对应源码文件会被Makefile编译进内核; 如果auto.conf中CONFIG_xxx=m,对应源码文件会被Makefile编译成xxx.ko...模块文件 如果auto.conf中CONFIG_xxx=n,对应源码文件不会被makefile编译; 接下来分析Makefile来找到内核编译过程,明白make uImage做了什么

1.1K90

makefile从入门到放弃——博主吐血整理笔记

自动变量: 变量名 变量含义 – $* 不包含扩展名目标文件名称 – $+ 所有的依赖文件,以空格分开,并以出现后先后为序,可能包含重复依赖文件 – $< 第一个依赖文件名称 – $?...C dir读入指定目录下makefile -f file读入当前目录下file文件作为makefile -i 忽略所有命令执行错误 -I dir制定被包含makefile所在目录 -n 只打印要执行命令...如果定义了这个变量,那么,make就会在当前目录找不到情况下,到指定目录中去找寻文件了。 VPATH = src:.....subdir 文件下还有一个 makefile 文件,这个文件是用来描述这个子目录文件编译规则。...使用时只需要在最外层目录中执行 make 命令,当命令执行到上述规则时,程序会进入到子目录中执行 make。

1.6K20

用python写makefile

所以最近花了几个晚上了解makefile编写规则。 开始时候,我参照网上一些makefile例子,写了一个初版makefile。然而这个makefile在编译我工程时候报错。...2、不同.o文件或不同.cpp文件处于不同目录下。 这时我找到两种解决方法: 1、就是用VPATH这个特殊变量,但是我不可能将所有要包含目录都一一手动包含进来,于是我放弃。...其实开始时候我想用shell来做这一步工作,但是我看到sed和awk,我都晕,之前还一直抵触学习sed和awk。因此最后选择了python。...头文件包含路径 # @SYSLIBS 包含系统库 # @LIBS 编译程序需要包含库 # @CXX 一般填写gcc/g++ # @FLAGS gcc/g++编译标志 # #...当然这个过程中会递归遍历所有子目录,查找到所有的源文件。

6.2K40

Makefile 入门教程

Makefile 是一个非常强大构建自动化工具,用于管理项目的编译、链接和其他构建任务。以下是一个详细 Makefile 使用文档,包括基本概念、语法、示例和常见任务。 1....Makefile 语法 一个基本 Makefile 规则语法如下: target: dependencies command target:要生成目标的名称。...然后使用 -include 指令来包含这些 .d 文件,以自动跟踪依赖关系。 5.3 多目录项目 对于大型项目,通常需要将 Makefile 拆分成多个子目录,每个子目录都有自己 Makefile。...然后,可以使用递归或变量传递来管理这些子目录之间依赖关系。...clean: for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir clean; \ done 在这个示例中,SUBDIRS 变量包含子目录列表

30720

Makefile 入门教程

Makefile 是一个非常强大构建自动化工具,用于管理项目的编译、链接和其他构建任务。以下是一个详细 Makefile 使用文档,包括基本概念、语法、示例和常见任务。 1....Makefile 语法 一个基本 Makefile 规则语法如下: target: dependencies command •target:要生成目标的名称。...然后使用 -include 指令来包含这些 .d 文件,以自动跟踪依赖关系。 5.3 多目录项目 对于大型项目,通常需要将 Makefile 拆分成多个子目录,每个子目录都有自己 Makefile。...然后,可以使用递归或变量传递来管理这些子目录之间依赖关系。...clean: for dir in $(SUBDIRS); do \ $(MAKE) -C $$dir clean; \ done 在这个示例中,SUBDIRS 变量包含子目录列表

21220
领券