Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

g++ cannot find header file

Tags:

c++

I am migrating from Java to C++. It seems that C++ makes classes declaration in separate files, difficult. So I need your help,

in my main.cpp:

#include "Sphere.h"

using namespace std;
.....
...
..

int main( void ) {
   Sphere *earth = new Sphere(sphere_start ,sphere_end);
...
..
.

in my Sphere.h

class Sphere
{

    public:
        Sphere(int,int);

}

and in my 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) 
{
   ....
   ..
   .

}

This is the very basic code that I think causes the following error:

main.cpp:14:20: fatal error: Sphere.h: No such file or directory
compilation terminated.

why?

like image 687
Test Test Avatar asked Dec 13 '22 06:12

Test Test


1 Answers

You need to add to your compile command a path to where the header files can be found.

If your header is in the headers directory add -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.

Or whatever your files are ...

like image 109
stefanB Avatar answered Jan 01 '23 23:01

stefanB