C++ G++;编译时未找到包含的.cpp文件

C++ G++;编译时未找到包含的.cpp文件,c++,compilation,g++,C++,Compilation,G++,Inkey.cpp和Key.cpp位于同一目录/root/src中 Compile.bat位于/root中 当我运行Compile.bat时,会收到消息“Key.cpp:没有这样的文件或目录” 提前谢谢你的建议 Inkey.cpp #include <iostream> #include <Key.cpp> using namespace std; int main(int argc, char *argv[]) { cout << "H

Inkey.cpp
Key.cpp
位于同一目录/root/src中

Compile.bat位于/root中

当我运行
Compile.bat
时,会收到消息“Key.cpp:没有这样的文件或目录”

提前谢谢你的建议

Inkey.cpp

#include <iostream>
#include <Key.cpp>

using namespace std;

int main(int argc, char *argv[]) {
    cout << "Hello from InKey" << endl;

    Key key1;

    return 0;
}

查找
#include“filename”
#include
之间的差异。前者从当前目录开始,后者使用搜索路径(或一组这样的路径)。(请注意,
#include“filename”
将采用
#include
的搜索策略,如果从当前目录开始找不到任何文件)


另外,您通常不包括.cpp文件,而是将它们作为单独的参数传递给编译器,然后使用链接器将它们组合起来。

首先,将
Key.cpp
重命名为
Key.h
。将声明放入
Key.h
。然后将定义放入
Key.cpp
(不要忘了在这里包括
Key.h
)。然后使用
Key
对象将您的
Key.h
包含在所有文件中。
现在,用
g++-o filename.out file1.cpp file2.cpp-O3-Wall编译它们
另外,学习使用样板代码

另外,正如@SoronelHaetir所建议的,使用
包含自定义头文件


我感谢你的详细解释。在我的无知中,我认为我可以在一个宠物项目中学习CPP。编译语言似乎比“解释”语言更复杂。再次感谢。
#include <iostream>

using namespace std;

class Key {
    public:
        Key() {
            cout << "New Key instantiated." << endl;
        };
};
@ECHO OFF

g++ "src/Inkey.cpp" -o "out/InKey.exe"

"out\Inkey.exe"