What are the advantages of using `make` for small projects?
I've seen that make
is useful for large projects, especially with confusing dependencies described in a Makefile
, and also helping with workflow.
I haven't heard any advantages for using make
for small projects.
Are there any?
scripting compiling make development
New contributor
|
show 2 more comments
I've seen that make
is useful for large projects, especially with confusing dependencies described in a Makefile
, and also helping with workflow.
I haven't heard any advantages for using make
for small projects.
Are there any?
scripting compiling make development
New contributor
2
optimism for growth? :) good habits? This might stray into opinion territory.
– Jeff Schaller
9 hours ago
typemake
to discover the answer. make a decent template Makefile and just edit its source files variable. no need to type all that jazz.
– user2497
7 hours ago
they're kind of a nightmare for large projects, so honestly, i'd say they're only good for small projects ;)
– Eevee
6 hours ago
I could use makefiles, but I don't. I've divided my source code for my biggest (personal) project into 10 files, recompile the first, and the first has #includes for the other nine. With the speed of recompilation, it doesn't matter to me if it all gets recompiled every time.
– Jennifer
5 hours ago
@Jennifer So what happens if your project starts to require special compiler or linker commands? You just remember them and hope that in a year or so when you get back you'll still get them right? What if you want to share it with someone else? (that said makefiles are an awful way to go about this for anything non-trivial, I agree with Eevee on that one)
– Voo
4 hours ago
|
show 2 more comments
I've seen that make
is useful for large projects, especially with confusing dependencies described in a Makefile
, and also helping with workflow.
I haven't heard any advantages for using make
for small projects.
Are there any?
scripting compiling make development
New contributor
I've seen that make
is useful for large projects, especially with confusing dependencies described in a Makefile
, and also helping with workflow.
I haven't heard any advantages for using make
for small projects.
Are there any?
scripting compiling make development
scripting compiling make development
New contributor
New contributor
edited 2 hours ago
G-Man
13.3k93566
13.3k93566
New contributor
asked 9 hours ago
Goodwin LuGoodwin Lu
284
284
New contributor
New contributor
2
optimism for growth? :) good habits? This might stray into opinion territory.
– Jeff Schaller
9 hours ago
typemake
to discover the answer. make a decent template Makefile and just edit its source files variable. no need to type all that jazz.
– user2497
7 hours ago
they're kind of a nightmare for large projects, so honestly, i'd say they're only good for small projects ;)
– Eevee
6 hours ago
I could use makefiles, but I don't. I've divided my source code for my biggest (personal) project into 10 files, recompile the first, and the first has #includes for the other nine. With the speed of recompilation, it doesn't matter to me if it all gets recompiled every time.
– Jennifer
5 hours ago
@Jennifer So what happens if your project starts to require special compiler or linker commands? You just remember them and hope that in a year or so when you get back you'll still get them right? What if you want to share it with someone else? (that said makefiles are an awful way to go about this for anything non-trivial, I agree with Eevee on that one)
– Voo
4 hours ago
|
show 2 more comments
2
optimism for growth? :) good habits? This might stray into opinion territory.
– Jeff Schaller
9 hours ago
typemake
to discover the answer. make a decent template Makefile and just edit its source files variable. no need to type all that jazz.
– user2497
7 hours ago
they're kind of a nightmare for large projects, so honestly, i'd say they're only good for small projects ;)
– Eevee
6 hours ago
I could use makefiles, but I don't. I've divided my source code for my biggest (personal) project into 10 files, recompile the first, and the first has #includes for the other nine. With the speed of recompilation, it doesn't matter to me if it all gets recompiled every time.
– Jennifer
5 hours ago
@Jennifer So what happens if your project starts to require special compiler or linker commands? You just remember them and hope that in a year or so when you get back you'll still get them right? What if you want to share it with someone else? (that said makefiles are an awful way to go about this for anything non-trivial, I agree with Eevee on that one)
– Voo
4 hours ago
2
2
optimism for growth? :) good habits? This might stray into opinion territory.
– Jeff Schaller
9 hours ago
optimism for growth? :) good habits? This might stray into opinion territory.
– Jeff Schaller
9 hours ago
type
make
to discover the answer. make a decent template Makefile and just edit its source files variable. no need to type all that jazz.– user2497
7 hours ago
type
make
to discover the answer. make a decent template Makefile and just edit its source files variable. no need to type all that jazz.– user2497
7 hours ago
they're kind of a nightmare for large projects, so honestly, i'd say they're only good for small projects ;)
– Eevee
6 hours ago
they're kind of a nightmare for large projects, so honestly, i'd say they're only good for small projects ;)
– Eevee
6 hours ago
I could use makefiles, but I don't. I've divided my source code for my biggest (personal) project into 10 files, recompile the first, and the first has #includes for the other nine. With the speed of recompilation, it doesn't matter to me if it all gets recompiled every time.
– Jennifer
5 hours ago
I could use makefiles, but I don't. I've divided my source code for my biggest (personal) project into 10 files, recompile the first, and the first has #includes for the other nine. With the speed of recompilation, it doesn't matter to me if it all gets recompiled every time.
– Jennifer
5 hours ago
@Jennifer So what happens if your project starts to require special compiler or linker commands? You just remember them and hope that in a year or so when you get back you'll still get them right? What if you want to share it with someone else? (that said makefiles are an awful way to go about this for anything non-trivial, I agree with Eevee on that one)
– Voo
4 hours ago
@Jennifer So what happens if your project starts to require special compiler or linker commands? You just remember them and hope that in a year or so when you get back you'll still get them right? What if you want to share it with someone else? (that said makefiles are an awful way to go about this for anything non-trivial, I agree with Eevee on that one)
– Voo
4 hours ago
|
show 2 more comments
4 Answers
4
active
oldest
votes
As opposed to what?
Suppose you have a program that you have split into two files,
which you have imaginatively named file1.c
and file2.c
.
You can compile the program by running
cc file1.c file2.c -o yourprogram
But this requires recompiling both files every time,
even if only one has changed.
You can decompose the compilation steps into
cc -c file1.c
cc -c file2.c
cc file1.o file2.o -o yourprogram
and then, when you edit one of the files, recompile only that file
(and perform the linking step no matter what you changed).
But what if you edit one file, and then the other,
and you forget that you edited both files,
and accidentally recompile only one?
Also, even for just two files,
you’ve got about 60 characters’ worth of commands there.
That quickly gets tedious to type.
OK, sure, you could put them into a script,
but then you’re back to recompiling every time.
Or you could write a really fancy, complicated script that checks
what file(s) had been modified and does only the necessary compilations.
Do you see where I’m going with this?
For very small projects,gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use-fwhole-program
is a fun advantage of compiling everything together, but-flto
normally gives you pretty much the same optimizations.
– Peter Cordes
5 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
add a comment |
Even with small project it can be helpful keeping the dependency logic under control and builds automated. I also used it to trigger installs and deinstallations, so it was a main switch resetting the stage.
add a comment |
A lot of other people are getting into the details of more complex makefiles and a lot of the complexity that comes with them. I typically use makefiles for a completely different reason:
I don't want to remember anything.
Even if your project is really boring and simple, and you don't use makefiles "correctly":
all:
gcc main.c -o project
I don't need to think about it or treat it any differently than a project that's more complex:
all:
gcc libA.c libB.c main.c -o project2
Or if I specified flags (e.g. -O2
) I don't need to remember what they were.
Also, if you start with a simple makefile, and you need to merge/refactor things later, you don't need to remember to build every project differently.
add a comment |
If you link your app from 2 sources (.c
files) , you do not need to recompile each file, but only the changed one if you are using make.
Also, I will give you example from BSD world. They have framework of system-based Makefiles. They provide you paths to system directories and have targets to install your software and manual pages.
For example, you just wrote beer.c
app and manual for it called beer.6
.
You create Makefile
:
PROG= beer
MAN= beer.6
.include <bsd.prog.mk>
..and call make install
. It automatically compiles and installs your app to /usr/bin
and compiles and installs your man page to the place where man
can find it. You just installed your app with one simple command!
Very convenient and absolutely transparent for anyone who is familiar with BSD.
Much better than manual script.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Goodwin Lu is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f503975%2fwhat-are-the-advantages-of-using-make-for-small-projects%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
As opposed to what?
Suppose you have a program that you have split into two files,
which you have imaginatively named file1.c
and file2.c
.
You can compile the program by running
cc file1.c file2.c -o yourprogram
But this requires recompiling both files every time,
even if only one has changed.
You can decompose the compilation steps into
cc -c file1.c
cc -c file2.c
cc file1.o file2.o -o yourprogram
and then, when you edit one of the files, recompile only that file
(and perform the linking step no matter what you changed).
But what if you edit one file, and then the other,
and you forget that you edited both files,
and accidentally recompile only one?
Also, even for just two files,
you’ve got about 60 characters’ worth of commands there.
That quickly gets tedious to type.
OK, sure, you could put them into a script,
but then you’re back to recompiling every time.
Or you could write a really fancy, complicated script that checks
what file(s) had been modified and does only the necessary compilations.
Do you see where I’m going with this?
For very small projects,gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use-fwhole-program
is a fun advantage of compiling everything together, but-flto
normally gives you pretty much the same optimizations.
– Peter Cordes
5 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
add a comment |
As opposed to what?
Suppose you have a program that you have split into two files,
which you have imaginatively named file1.c
and file2.c
.
You can compile the program by running
cc file1.c file2.c -o yourprogram
But this requires recompiling both files every time,
even if only one has changed.
You can decompose the compilation steps into
cc -c file1.c
cc -c file2.c
cc file1.o file2.o -o yourprogram
and then, when you edit one of the files, recompile only that file
(and perform the linking step no matter what you changed).
But what if you edit one file, and then the other,
and you forget that you edited both files,
and accidentally recompile only one?
Also, even for just two files,
you’ve got about 60 characters’ worth of commands there.
That quickly gets tedious to type.
OK, sure, you could put them into a script,
but then you’re back to recompiling every time.
Or you could write a really fancy, complicated script that checks
what file(s) had been modified and does only the necessary compilations.
Do you see where I’m going with this?
For very small projects,gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use-fwhole-program
is a fun advantage of compiling everything together, but-flto
normally gives you pretty much the same optimizations.
– Peter Cordes
5 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
add a comment |
As opposed to what?
Suppose you have a program that you have split into two files,
which you have imaginatively named file1.c
and file2.c
.
You can compile the program by running
cc file1.c file2.c -o yourprogram
But this requires recompiling both files every time,
even if only one has changed.
You can decompose the compilation steps into
cc -c file1.c
cc -c file2.c
cc file1.o file2.o -o yourprogram
and then, when you edit one of the files, recompile only that file
(and perform the linking step no matter what you changed).
But what if you edit one file, and then the other,
and you forget that you edited both files,
and accidentally recompile only one?
Also, even for just two files,
you’ve got about 60 characters’ worth of commands there.
That quickly gets tedious to type.
OK, sure, you could put them into a script,
but then you’re back to recompiling every time.
Or you could write a really fancy, complicated script that checks
what file(s) had been modified and does only the necessary compilations.
Do you see where I’m going with this?
As opposed to what?
Suppose you have a program that you have split into two files,
which you have imaginatively named file1.c
and file2.c
.
You can compile the program by running
cc file1.c file2.c -o yourprogram
But this requires recompiling both files every time,
even if only one has changed.
You can decompose the compilation steps into
cc -c file1.c
cc -c file2.c
cc file1.o file2.o -o yourprogram
and then, when you edit one of the files, recompile only that file
(and perform the linking step no matter what you changed).
But what if you edit one file, and then the other,
and you forget that you edited both files,
and accidentally recompile only one?
Also, even for just two files,
you’ve got about 60 characters’ worth of commands there.
That quickly gets tedious to type.
OK, sure, you could put them into a script,
but then you’re back to recompiling every time.
Or you could write a really fancy, complicated script that checks
what file(s) had been modified and does only the necessary compilations.
Do you see where I’m going with this?
answered 8 hours ago
G-ManG-Man
13.3k93566
13.3k93566
For very small projects,gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use-fwhole-program
is a fun advantage of compiling everything together, but-flto
normally gives you pretty much the same optimizations.
– Peter Cordes
5 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
add a comment |
For very small projects,gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use-fwhole-program
is a fun advantage of compiling everything together, but-flto
normally gives you pretty much the same optimizations.
– Peter Cordes
5 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
For very small projects,
gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use -fwhole-program
is a fun advantage of compiling everything together, but -flto
normally gives you pretty much the same optimizations.– Peter Cordes
5 hours ago
For very small projects,
gcc -O3 -march=native -fwhole-program *.c
is basically fine for an edit / compile / profile cycle. But you still want a Makefile for other people to use. Being able to use -fwhole-program
is a fun advantage of compiling everything together, but -flto
normally gives you pretty much the same optimizations.– Peter Cordes
5 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
Once I start adding switches to the compiler command line (even for one source file), I find it gets tricky to remember them the next time. Occasionally I'll just put a comment in the source file, but at that point I should just use a Makefile...
– Roger Lipscombe
4 hours ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
@ger Lipscombe: And if you need to compile for different environments, it's as simple as defining a few macros in your makefile. And with a little creativity, you can hook the make command to an editior function key, capture the output in a file, and use another key to put you at the position of any errors...
– jamesqf
1 hour ago
add a comment |
Even with small project it can be helpful keeping the dependency logic under control and builds automated. I also used it to trigger installs and deinstallations, so it was a main switch resetting the stage.
add a comment |
Even with small project it can be helpful keeping the dependency logic under control and builds automated. I also used it to trigger installs and deinstallations, so it was a main switch resetting the stage.
add a comment |
Even with small project it can be helpful keeping the dependency logic under control and builds automated. I also used it to trigger installs and deinstallations, so it was a main switch resetting the stage.
Even with small project it can be helpful keeping the dependency logic under control and builds automated. I also used it to trigger installs and deinstallations, so it was a main switch resetting the stage.
answered 8 hours ago
TomaszTomasz
9,91652966
9,91652966
add a comment |
add a comment |
A lot of other people are getting into the details of more complex makefiles and a lot of the complexity that comes with them. I typically use makefiles for a completely different reason:
I don't want to remember anything.
Even if your project is really boring and simple, and you don't use makefiles "correctly":
all:
gcc main.c -o project
I don't need to think about it or treat it any differently than a project that's more complex:
all:
gcc libA.c libB.c main.c -o project2
Or if I specified flags (e.g. -O2
) I don't need to remember what they were.
Also, if you start with a simple makefile, and you need to merge/refactor things later, you don't need to remember to build every project differently.
add a comment |
A lot of other people are getting into the details of more complex makefiles and a lot of the complexity that comes with them. I typically use makefiles for a completely different reason:
I don't want to remember anything.
Even if your project is really boring and simple, and you don't use makefiles "correctly":
all:
gcc main.c -o project
I don't need to think about it or treat it any differently than a project that's more complex:
all:
gcc libA.c libB.c main.c -o project2
Or if I specified flags (e.g. -O2
) I don't need to remember what they were.
Also, if you start with a simple makefile, and you need to merge/refactor things later, you don't need to remember to build every project differently.
add a comment |
A lot of other people are getting into the details of more complex makefiles and a lot of the complexity that comes with them. I typically use makefiles for a completely different reason:
I don't want to remember anything.
Even if your project is really boring and simple, and you don't use makefiles "correctly":
all:
gcc main.c -o project
I don't need to think about it or treat it any differently than a project that's more complex:
all:
gcc libA.c libB.c main.c -o project2
Or if I specified flags (e.g. -O2
) I don't need to remember what they were.
Also, if you start with a simple makefile, and you need to merge/refactor things later, you don't need to remember to build every project differently.
A lot of other people are getting into the details of more complex makefiles and a lot of the complexity that comes with them. I typically use makefiles for a completely different reason:
I don't want to remember anything.
Even if your project is really boring and simple, and you don't use makefiles "correctly":
all:
gcc main.c -o project
I don't need to think about it or treat it any differently than a project that's more complex:
all:
gcc libA.c libB.c main.c -o project2
Or if I specified flags (e.g. -O2
) I don't need to remember what they were.
Also, if you start with a simple makefile, and you need to merge/refactor things later, you don't need to remember to build every project differently.
answered 2 hours ago
Stack TracerStack Tracer
1334
1334
add a comment |
add a comment |
If you link your app from 2 sources (.c
files) , you do not need to recompile each file, but only the changed one if you are using make.
Also, I will give you example from BSD world. They have framework of system-based Makefiles. They provide you paths to system directories and have targets to install your software and manual pages.
For example, you just wrote beer.c
app and manual for it called beer.6
.
You create Makefile
:
PROG= beer
MAN= beer.6
.include <bsd.prog.mk>
..and call make install
. It automatically compiles and installs your app to /usr/bin
and compiles and installs your man page to the place where man
can find it. You just installed your app with one simple command!
Very convenient and absolutely transparent for anyone who is familiar with BSD.
Much better than manual script.
add a comment |
If you link your app from 2 sources (.c
files) , you do not need to recompile each file, but only the changed one if you are using make.
Also, I will give you example from BSD world. They have framework of system-based Makefiles. They provide you paths to system directories and have targets to install your software and manual pages.
For example, you just wrote beer.c
app and manual for it called beer.6
.
You create Makefile
:
PROG= beer
MAN= beer.6
.include <bsd.prog.mk>
..and call make install
. It automatically compiles and installs your app to /usr/bin
and compiles and installs your man page to the place where man
can find it. You just installed your app with one simple command!
Very convenient and absolutely transparent for anyone who is familiar with BSD.
Much better than manual script.
add a comment |
If you link your app from 2 sources (.c
files) , you do not need to recompile each file, but only the changed one if you are using make.
Also, I will give you example from BSD world. They have framework of system-based Makefiles. They provide you paths to system directories and have targets to install your software and manual pages.
For example, you just wrote beer.c
app and manual for it called beer.6
.
You create Makefile
:
PROG= beer
MAN= beer.6
.include <bsd.prog.mk>
..and call make install
. It automatically compiles and installs your app to /usr/bin
and compiles and installs your man page to the place where man
can find it. You just installed your app with one simple command!
Very convenient and absolutely transparent for anyone who is familiar with BSD.
Much better than manual script.
If you link your app from 2 sources (.c
files) , you do not need to recompile each file, but only the changed one if you are using make.
Also, I will give you example from BSD world. They have framework of system-based Makefiles. They provide you paths to system directories and have targets to install your software and manual pages.
For example, you just wrote beer.c
app and manual for it called beer.6
.
You create Makefile
:
PROG= beer
MAN= beer.6
.include <bsd.prog.mk>
..and call make install
. It automatically compiles and installs your app to /usr/bin
and compiles and installs your man page to the place where man
can find it. You just installed your app with one simple command!
Very convenient and absolutely transparent for anyone who is familiar with BSD.
Much better than manual script.
answered 3 hours ago
user996142user996142
41239
41239
add a comment |
add a comment |
Goodwin Lu is a new contributor. Be nice, and check out our Code of Conduct.
Goodwin Lu is a new contributor. Be nice, and check out our Code of Conduct.
Goodwin Lu is a new contributor. Be nice, and check out our Code of Conduct.
Goodwin Lu is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f503975%2fwhat-are-the-advantages-of-using-make-for-small-projects%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
optimism for growth? :) good habits? This might stray into opinion territory.
– Jeff Schaller
9 hours ago
type
make
to discover the answer. make a decent template Makefile and just edit its source files variable. no need to type all that jazz.– user2497
7 hours ago
they're kind of a nightmare for large projects, so honestly, i'd say they're only good for small projects ;)
– Eevee
6 hours ago
I could use makefiles, but I don't. I've divided my source code for my biggest (personal) project into 10 files, recompile the first, and the first has #includes for the other nine. With the speed of recompilation, it doesn't matter to me if it all gets recompiled every time.
– Jennifer
5 hours ago
@Jennifer So what happens if your project starts to require special compiler or linker commands? You just remember them and hope that in a year or so when you get back you'll still get them right? What if you want to share it with someone else? (that said makefiles are an awful way to go about this for anything non-trivial, I agree with Eevee on that one)
– Voo
4 hours ago