我正在从Java迁移到C ++。似乎C ++在单独的文件中进行类声明很困难。所以我需要你的帮助,
在我的main.cpp中:
#include "Sphere.h"
using namespace std;
.....
...
..
int main( void ) {
Sphere *earth = new Sphere(sphere_start ,sphere_end);
...
..
.
在我的Sphere.h中
class Sphere
{
public:
Sphere(int,int);
}
和我的Sphere.cpp
#include "Sphere.h"
using namespace std;
int sphere_start, sphere_end;
Sphere::Sphere (int a, int b)
{
sphere_start = a;
sphere_end = b;
}
void Sphere::render(int i)
{
....
..
.
}
这是我认为导致以下错误的基本代码:
main.cpp:14:20: fatal error: Sphere.h: No such file or directory
compilation terminated.
为什么?
答案 0 :(得分:5)
您需要在编译命令中添加一个可以找到头文件的路径。
如果您的标题位于headers
目录中,请添加-Iheaders
:
g++ -o main.o -c -Iheaders main.cpp
g++ -o sphere.o -c -Iheaders sphere.cpp
g++ -o app main.o sphere.o -L.
或者你的文件是什么......
答案 1 :(得分:4)
Sphere.h必须与包含它的每个文件位于同一目录中,或者必须指示编译器搜索Sphere.h所在的目录。
答案 2 :(得分:2)
你应该发布你的命令行,但我的猜测是你应该告诉编译器头文件的路径。如果您使用的是linux,请尝试:
g++ main.cpp shpere.cpp -I<path_to_Sphere.h> -o main
答案 3 :(得分:1)
两个潜在错误: