所以,例如我有一堆文件:
root-dir:
dir-a:
read.cpp
dir-b:
code.cpp
lib.cpp
lib.h
lib的文件:
//lib.cpp
#include <string>
using namespace std;
string edit(string in) {
string out;
/*function body*/
return out;
}
//lib.h
#include <string>
std::string edit(std::string in);
我需要在“read.cpp”和“code.cpp”中都包含lib的函数。
我尝试:
#include "lib.cpp"
来自两个文件,但失败了:fatal error: lib.cpp: No such file or directory
#include "lib.h"
。同:fatal error: lib.h: No such file or directory
#include "root-dir/lib.h"
,突出显示红色:'root-dir/lib.h' file not found
显然,
#include "C:/.../.../root-dir/lib.h"
不是一个合适的解决方案。
您可以在此处写下
lib.cpp
来包含#include "../lib.cpp"
,但有几点需要注意:
您应该始终包含头文件,而不是源文件。
更好的方法是将头文件和源文件组织在单独的文件夹中。这是一个例子:
.
├── inc
│ └── lib.h
└── src
├── code.cpp
├── lib.cpp
└── read.cpp