gpt4 book ai didi

c++ - gcc -I 不更改包含目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:21 25 4
gpt4 key购买 nike

我有一个名为code/的文件夹,在这个文件夹下有一个名为include/的文件夹和名为code.cc的源文件,include/包含头文件a.hb.h,这两个头文件也存在于其他地方,为了使用头文件在 include/ 文件夹中,我在我的 Makefile 中添加了一个标记 -Iinclude ,但是我的代码仍然在其他地方使用这些头文件,如果我按照下面的方式包含头文件,我的代码使用了include/下的头文件,为什么-I标志没有改变include目录?

#include "include/a.h"
#include "include/b.h"

编辑:目录:

code/code.cc
code/Makefile
code/include/a.h
code/include/b.h

生成文件:

CFLAGS = -Iinclude/
CFLAGS += -m32
LDFLAGS = -Llib -llits -lrt -lpthread -Wl,-R,'lib'
code:code.cc
gcc -o code $(CFLAGS) $(LDFLAGS) code.cc

gcc --version:

gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973]
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

最佳答案

使用此设置:

code/code.cc
code/Makefile
code/include/a.h
code/include/b.h

并且通过将 -Iinclude/ 添加到编译器标志,您的 #include "include/a.h" 将在中查找 include/a.h include/ 文件夹。即,编译器查找不存在的 include/include/a.h,然后编译器在搜索路径中的其他地方查找 include/a.h 文件。

您的代码要么必须使用 #include "a.h" ,要么您的 -Iinclude/ 必须是 -I. -I .将当前目录添加到搜索路径,这样 #include "include/a.h" 将匹配文件 ./include/a.h 确保 -I. 添加在任何其他搜索路径之前,这些搜索路径也将匹配您包含的文件。

关于c++ - gcc -I 不更改包含目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com