如何包含位于上层目录中的 .h 文件? С++

问题描述 投票:0回答:1

所以,例如我有一堆文件:

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"
不是一个合适的解决方案。

c++ c++17 include clion include-path
1个回答
0
投票

您可以在此处写下

lib.cpp
来包含
#include "../lib.cpp"
,但有几点需要注意:

  • 您应该始终包含头文件,而不是源文件。

  • 更好的方法是将头文件和源文件组织在单独的文件夹中。这是一个例子:

    .
    ├── inc
    │   └── lib.h
    └── src
        ├── code.cpp
        ├── lib.cpp
        └── read.cpp
    
© www.soinside.com 2019 - 2024. All rights reserved.