Eclipse c++ project folders - c++

I have a lot of classes in my project which means a lot of files too. I want to put everything in subfolders so it's a grouped together and a bit more clear.
There is already a folder names scr where all my cpp and header files are in but I want to create a folder named 'products' and put all the product-related files in there.
But when I do so, I get this error (after pressing build) that one of my classes can't be build. It says:
make: * [scr/Producten/AudioKaart.o] Error 1 KassaSysteem C/C++
Problem recipe for target `scr/Producten/AudioKaart.o'
failed subdir.mk /KassaSysteem/Debug/scr/Producten line 30 C/C++
Problem
What's the right way to put files in subfolders? Do I need to change the includes? Or do something more than just dragging and dropping them into the folder?

If you put headers in your Producten directory, you need to include this directory in your project settings. Another way is to include your header by specifying the sub-directory, something like
#include "Producten/xxx.h"

Eclipse uses directories for project folders, so you need to adjust all includes as well.

Related

Xcode folders and groups confusion

I'm using Xcode (with C++) and my project layout (in the file system, not in Xcode) looks like this:
SubfolderA
-file_A_1, file_A_2
SubfolderB
-file_B_1, file_B_2
Right now I've set up this structure in Xcode via groups. And so, when I want to include file_A_2 in file_B_1, I write #include "file_A_2" in file_B_1.
Is there some way to make an inclusion look like #include "/SubfolderA/file_A_2", so that I can easily see to what directory/subfolder an included file belongs?
One way to see what's going on is to look at the Build Log and expand the line for compiling sourcefile.m. Look at the -I options being passed to the compiler.
If it's not to your liking you can add the source tree in the Build Settings > Header Search Paths to include $(ProjectDir)/srcroot and make it recursive, which saves you from adding each sub-folder individually.
In my experience this has never been necessary, however, as far as I can remember.
As far as the Xcode folders are concerned, if the top-level source folder is added then all sub-folders are automatically added when you add them to the filesystem, saving the hassle of keeping them in sync. You might need to add the top-level folder under the Source Files group for this to work, however.
Surprisingly, in Xcode's Build Settings I've added to User Header Search Paths non-recursive path to my project. This solved my problem.
I ended up here when I was having an issue with XCode while trying to include a header in a group by doing
#include "MyGroup/MyHeader.h"
Turns out the project structure and the file system weren't in sync, so I just had to remove my group from the project, put it in the correct place in Finder, then drag and drop it back into the project in the correct place and it worked for me.
I'm not sure if this is necessary or not, but I also have already set up my app's working directory because I am doing some game programming and need to be able to load in .png and make textures.

Why doesn't Xcode6 see included header files

I'm trying to build opencv2 as a universal framework. I am systematically removing the files/folders that I do not need. But I am running into this issue where the include files are not found. See the image below:
The following image clearly shows that the file is indeed there.
One of the contractors working with us said he had put the include files into the same directory as the source files and rename them according to their file structure but using "." instead of "/" as shown below:
But that means that I must go through all of the files that include files and change the include statement to use "." instead of "/". REALLY?
Is this true? Or do we have a configuration set wrong?
You need to setup search paths for your target in Build Settings->Search Paths->Header search paths.

Use source files in different directory in NetBeans Dynamic Library Project

I am new to C++ and NetBeans and I am trying to build a Dynamic Library project using it :). I want to build a plugin which uses source files located in different directories, and would like to keep them separately (as its a plugin ;)). I already tried to include the directory where the source files are located using Properties > Build > C++ Compiler > Include Directories, but it still gives errors in referencing to these files. These errors say the following:
"Cannot find include file "vtkPolyDataAlgorithm.h" "
Can anyone help me on this? I assume its a bit of a basic-basic-basic question, but I'm trying to learn autodidactically as a geologist from background, so you might see my problem :). I really hope you can help me out! Thanks :)
Ellen
While your way is the default way to add directories which contain additional headers (e.g. for libraries), you can add further Source-directories using Properties -> General -> Source Folders (-> Add).
It's also possible to add files (cpp / h) to your project, without setting a directory:
Right click on your project -> Add existing item ... or Add existing items from folders ...
But you have to care about your paths, you may have to browse to the headers using #include "../headers/here/example.h.

Include issue in a resource script (.rc)

Ive made a project (copied actually, but its from an old project hugely out of date that doesnt compile anymore). Its a MFC project. In the .rc file there is an include to two files that are also used in the normal code itself. The problem is that when i compile, in the .rc file I get an error returned saying it cant find either file.
The .rc file and the main project are in different folders but the number of folders is the same. So the directory structure is:
ManagerDir->ManagerProj
ManagerDir->ManagerProj.rc
In my additional dependencies i have a path to the folder where the files it cant find are. That works for the project code. In the .rc file if i give the long, ..\..\Dir1\subDir\.., path the include works. The problem is that the same thing is happening with further includes so this seems to be a symptom and not the problem.
I tried moving the rc script from where it is now to put it in the same folder as the project code but it re-writes the rc script when i do this.
Anyone know what might be happening?

Eclipse C++ including header file from my source folder

I'm pretty new to C++ and Eclipse in general so I apologise if I'm missing something fairly obvious.
The problem I'm having is that I'm trying to include a header file in one of my source files but they're in different folders in my project directory. I have no idea how I should be including them. I've uploaded an image showing my problem with the header file I want to include highlighted.
If someone could tell me what '#include' statement I should be using them that would be brilliant.
Thanks!
There are a couple of different options to make this work. Simplest is to change the #include to
#include "../Statistics/Statistics.h"
This will work without any other modifications. However, if you move either file, or somehow change the relative path between the two, this will break.
Alternately, you can add the path to the Statistics folder to your compiler's include file search path. Right click on the project name, select Properties -> C/C++ Build -> Settings and then find the includes files path option for your compiler. For g++, it is -I<path/to/include/folder>. Adding this will make the #include statement work as you currently have it.
A very similar option to the second one is to add the path to the src folder (instead of the Statistics folder) to the includes search path. In this case, you'll have to change the statement to
#include "Statistics/Statistics.h"
When you create subfolders in your src folder then each cpp file is compiled in that folder it is located in. Thus, any "" includes need to specify the relative path to get from that folder to another.
In your case, to get from inside the FileInOut folder you need to go back one level and then into the Statistics folder
eg
#include "../Statistics/Statistics.h"
Another alternative is, if you are keeping your includes in your src directory, to add the src directory to the include path. Now when you include you need only specify the path from the src root.
eg.
#include "Statistics/Statistics.h"