gpt4 book ai didi

c++ - 在c++中的不同目录中包含头文件

转载 作者:可可西里 更新时间:2023-11-01 18:26:14 26 4
gpt4 key购买 nike

我一直在学习c++并遇到以下问题:我的目录结构如下:

 - current directory

- Makefile

- include

- header.h

- src

- main.cpp

我的 header.h :

#include <iostream> 

using namespace std;

void print_hello();

我的 main.cpp:

#include "header.h"

int main(int argc, char const *argv[])
{
print_hello();
return 0;
}

void print_hello()
{
cout<<"hello world"<<endl;
}

我的生成文件:

CC = g++
OBJ = main.o
HEADER = include/header.h
CFLAGS = -c -Wall

hello: $(OBJ)
$(CC) $(OBJ) -o $@

main.o: src/main.cpp $(HEADER)
$(CC) $(CFLAGS) $< -o $@

clean:
rm -rf *o hello

make 的输出是:

g++ -c -Wall src/main.cpp -o main.o src/main.cpp:1:20: fatal error: header.h: No such file or directory compilation terminated. Makefile:10: recipe for target 'main.o' failed make: *** [main.o] Error 1

我在这里犯了什么错误。真令人沮丧。非常感谢任何建议!

最佳答案

您告诉 Makefile include/header.h 必须存在,并且您告诉 C++ 源文件它需要 header.h ……但您没有告诉此类 header 所在的编译器(即在“include”目录中)。

这样做:

CFLAGS = -c -Wall -Iinclude

关于c++ - 在c++中的不同目录中包含头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38162070/

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