Reputation: 1056
I am running visual studio C++ and I have a header file "GameEngine.h" that I am trying to have another file see.
When I #include "GameEngine.h" it gives me the error that it cannot open the source file. I have no idea what to do. I have done this literally a thousand times but for some reason this is now not working.
Upvotes: 61
Views: 494004
Reputation: 1
In my case the "missing" file could not be found by the compiler but could be seen and edited from the solution explorer in Visual Studio. The problem was that that files filepath was too long (233 characters total, nearly the windows limit). Moving my entire project back a few subdirectories fixed this for me.
Upvotes: 0
Reputation: 10865
For someone who's writing a CUDA program, you'll also need to need to configure the Additional Include Directories under the CUDA C/C++ tab under project properties.
Upvotes: 0
Reputation: 11
This was the top result when googling "cannot open source file" so I figured I would share what my issue was since I had already included the correct path.
I'm not sure about other IDEs or compilers, but least for Visual Studio, make sure there isn't a space in your list of include directories. I had put a space between the ;
of the last entry and the beginning of my new entry which then caused Visual Studio to disregard my inclusion.
Upvotes: 1
Reputation: 686
One thing that caught me out and surprised me was, in an inherited project, the files it was referring to were referred to on a relative path outside of the project folder but yet existed in the project folder.
In solution explorer, single click each file with the error, bring up the Properties window (right-click, Properties), and ensure the "Relative Path" is just the file name (e.g. MyMissingFile.cpp
) if it is in the project folder. In my case it was set to: ..\..\Some Other Folder\MyMissingFile.cpp
.
Upvotes: 0
Reputation: 29
Just in case there is someone out there who's a bit new like me, double check that you are spelling your header folders correctly.
For example:
<#include "Component/BoxComponent.h"
This will result in the error. Instead, it needs to be:
<#include "Components/BoxComponent.h"
Upvotes: 2
Reputation: 177
Upvotes: -9
Reputation: 393863
You need to check your project settings, under C++, check include directories and make sure it points to where GameEngine.h
resides, the other issue could be that GameEngine.h
is not in your source file folder or in any include directory and resides in a different folder relative to your project folder. For instance you have 2 projects ProjectA
and ProjectB
, if you are including GameEngine.h
in some source/header file in ProjectA
then to include it properly, assuming that ProjectB
is in the same parent folder do this:
include "../ProjectB/GameEngine.h"
This is if you have a structure like this:
Root\ProjectA
Root\ProjectB <- GameEngine.h actually lives here
Upvotes: 81