在一个文件夹中我收到了以下文件:
book.h,book.cpp,card.h,card.cpp
这些是book.h的内容。
class book {
public:
string title;
string author;
string get_title();
string get_author();
}
book::book(string title, string author){
title = title;
author = author;
}
这是我的book.cpp:
#include <book.h>
#include <iostream>
#include <string>
using namespace std;
string book::get_title(){
return title;
}
string book::get_author(){
return author;
}
int main(){
cout << ¨it works! \n¨
}
我尝试使用g ++ -c book.cpp进行编译,我不断收到错误消息:
book.cpp:1:18:致命错误:book.h:没有这样的文件或目录 编译终止。
答案 0 :(得分:2)
之间的区别
#include <book.h>
和
#include "book.h"
是第一个仅在INCLUDE路径中查找文件book.h
。后者在源文件所在的目录中首先查找文件,如果找不到,则在INCLUDE路径中查找该文件。
因此,您可以通过用引号替换尖括号或将目录添加到INCLUDE来解决您的问题。你可以通过像这样的
g++ -I . -c book.cpp
答案 1 :(得分:0)
#include
语句,则使用<>
括号路径,通常(但不是唯一的)当文件来自库或C ++标准库时。
""
。
如果你混淆起来,你将会度过一段美好时光。