A personal Makefile is sometimes better than a Makefile generated by default by your IDE, such Eclipse or Visual Studio C++ for example.
If you don't know how to create one, let's see it in this easy example of Makefile for C++.
I added some flags for the variable CXXFLAGS, it is different from the C language, where it is CFLAGS.
With g++, you do not have to write the variable CXXFLAGS in your compilation line, but if you prefer, you can add it.
## Variables NAME = goooooooooo SRC = main.cpp parent.cpp child.cpp OBJ = $(SRC:.cpp=.o) CXXFLAGS = -Wall -Werror -Wextra -pedantic -ansi CC = g++ ## Rules $(NAME) : $(OBJ) $(CC) $(OBJ) -o $(NAME) all : $(NAME) clean : rm -f $(OBJ) fclean : clean rm -f $(NAME) re : fclean all r : re rm -f *~ rm -f *.o
If you have a personal library that you created, add the LDFLAGS variable in the compilation line, like this:
## Variables NAME = goooooooooo SRC = main.cpp parent.cpp child.cpp OBJ = $(SRC:.cpp=.o) CXXFLAGS = -Wall -Werror -Wextra -pedantic -ansi CC = g++ LDFLAGS = -L/path/until/yourlib -lyourlib ## Rules $(NAME) : $(OBJ) $(CC) $(OBJ) -o $(NAME) $(LDFLAGS) all : $(NAME) clean : rm -f $(OBJ) fclean : clean rm -f $(NAME) re : fclean all r : re rm -f *~ rm -f *.o
If you have this error when you tried the example above:
Makefile:10: *** missing separator. Stop.
It is because you have copy / paste it.
Just replace the space by a tab and it will be fine.
Add new comment