10

I'm trying to make a makefile with multiple files. Can someone help me? The files I have are file1.cpp, file2.h and main.cpp

file1.cpp contains my functions. file2.h contains the declaration of my functions.

main.cpp [includes file2.h in the code] file1.cpp [includes file2.h in the code]

i did

all: main
gcc -g -Wall -o main main.cpp

but it gives me tons of bugs when i try to compile. my codes works perfectly fine on eclipse.

1

2 Answers 2

11

you'll need to compile all .cpp files that you use (i assume they are not included somewhere). That way the compiler will know that file1.cpp and main.cpp are used together. Also I would suggest using g++ instead of gcc, because g++ is the specific c++ compiler while gcc supports C and C++.

Try using:

g++ -g -Wall -o main main.cpp file1.cpp

Also I would recommend to use Makefile variables like this:

SOURCES = main.cpp file1.cpp
g++ -g -Wall -o main $(SOURCES)

Hope this helps :)

Sign up to request clarification or add additional context in comments.

1 Comment

thanks it helps a lot. turned out i can just drag my eclipse makefile over as well XD
1

but it gives me tons of bugs when i try to compile. my codes works perfectly fine on eclipse.

gcc is not a C++ compiler. Use g++ instead.

Your Makefile should look like so, it can leverage implicit rules:

all: main

CXXFLAGS+=-g -Wall
LDLIBS+=-lstdc++
main: file1.o main.o

1 Comment

gcc is a C++ compiler. g++ uses gcc, but just in a way that it treats all files as C++ files (including *.c files)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.