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"