Jess wrote:
Hello,
I am now trying to use makefile to compile C++ programs. My makefile
looks like:
f1.o : f1.cpp h1.h h2.h
g++ -c f1.cpp
f2.o : f2.cpp h2.h h3.h
g++ -c f2.cpp
final.o : final.cpp h4.h h5.h
g++ -c final.cpp
final : f1.o f2.o final.o
g++ f1.o f2.o final.o -o final
In other words, to make a ".o" file, I put its corresponding ".cpp"
and all the "included" ".h" files as dependent files. For the
executable file ("final" above), I put all the ".o" files as dependent
files, without any other ".h" files. Is this the correct approach?
Or, is there a simpler way? Additionally, is there anything important
missing from my makefile?
Thanks a lot!
This is off topic here. Try comp.unix.programmer. I have set followups
to that NG.
Just as a suggestion, try MakeXS (the website is down, I need to get it
back up but you can get a version of you download austria C++ from
sourceforge.
For MakeXS, simply place your cpp files in a folder, under the folder
containging the MakeXS folder. Add a Makefile.xsi (exact copy of all
other Makefile.xsi files) and a Makefile that includes your Makefile.xsi
and run "make".
It automatically creates your dependantcies, i.e. "f1.o : f1.cpp
h1.h..." and has a large number of other things you can do.
Documentation is there.
Yes, I need to put MakeXS.com back up....
While I am at it, it will also create your include directory list
automatically so it allows you to separate your app with NO modification
of your Makefiles. It also builds
The latest latest version is available in the austria C++ alpha at:
http://netcabletv.org/public_releases/ (100 meg download - has lots of
precompiled binaries). MakeXS by itself is quite small.
Basically, what I am trying to say is that basic Makefiles become a
maintenance nightmare, even for small projects and somthing like MakeXS
can eliminate alot of hard work.