main.cc:5:30:致命错误:folder/file.h:没有这样的文件或目录

raz*_*tax 4 c++ ubuntu makefile

当我make在Ubuntu终端中使用type时,我得到:

main.cc:5:30: fatal error: folder/file.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

该文件夹存在于工作目录中,file.h存在于指定的文件夹中.

当我键入ls它时,它也列出了我的工作目录中的文件夹和文件.

奇怪的是,当我在geany中打开它并要求它在中找到该文件时

#include <folder/file.h>
Run Code Online (Sandbox Code Playgroud)

它发现它没有问题但是当它构建它时我得到了错误.

我需要设置一个标志,所以它包含文件夹吗?如果是这样,那看起来到底是什么样的?

Mad*_*ist 7

这取决于您的C编译器,但"通常"当您使用< ... >语法包含文件时,编译器将仅在命令行中使用该-I标志指定的目录中查找这些头文件,以及各种内置系统目录.

值得注意的是,除非您明确添加到编译行,否则它通常不会查找当前工作目录-I..

或者,如果您使用的" ... "形式#include,那么它也将在当前工作目录中查找.

因此,要么切换到#include "folder/file.h",要么添加-I.到您的编译行.


rub*_*nvb 5

您需要使用引号而不是<>include,这使得编译器首先在源文件的目录中搜索:

#include "folder/file.h"
Run Code Online (Sandbox Code Playgroud)

或者,将当前目录显式添加到包含路径

g++ c -I. main.cc
Run Code Online (Sandbox Code Playgroud)