I have a number of source files in a number of folders.. Is there a way to just compile all of them in one go without having to name them?
I know that I can say
g++ -o out *.cpp
But when I try
g++ -o out *.cpp folder/*.cpp
I get an error.
What's the correct way to do this? I know it's possible with makefiles, but can it be done with just straight g++?
For start, you use split to separate filename and extension and store the result into an array a . The basename is located at index n-1 and the extension is at index n . So, we change the extension into . out and by using sprintf store into the outfile variable.
C++ source code files are always compiled into binary code by a program called a "compiler" and then executed. This is actually a multi-step process which we describe in some detail here.
To compile ALL the projects within a given folder: In the Configuration Manager, in the Rules Library folder structure, select the folder that you want to compile. On the toolbar, click Compile Folder .
By specifying folder/*.cpp
you are telling g++ to compile cpp files in folder
. That is correct.
What you may be missing is telling the g++ where to locate additional files that those cpp files #include
.
To do this, tell your compiler to also include
that directory with -I
like this:
g++ -o out -I ./folder *.cpp folder/*.cpp
In some circumstances I have had the compiler forget what was in the root/current directory, so I manually specified it with another -I
to the current directory .
g++ -o out -I . -I ./folder *.cpp folder/*.cpp
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With