Nick
Nick

Reputation: 1056

ERROR: Cannot open source file " "

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

Answers (7)

monoceros
monoceros

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

dontloo
dontloo

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

QuickNET Tech
QuickNET Tech

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

Matt Arnold
Matt Arnold

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

Megan Frazier
Megan Frazier

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

Solomon Fissehaye
Solomon Fissehaye

Reputation: 177

  1. Copy the contents of the file,
  2. Create an .h file, give it the name of the original .h file
  3. Copy the contents of the original file to the newly created one
  4. Build it
  5. VOILA!!

Upvotes: -9

EdChum
EdChum

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

Related Questions