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 :)

1
  • thanks it helps a lot. turned out i can just drag my eclipse makefile over as well XD
    – NewFile
    Commented Oct 2, 2013 at 17:35
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
  • 2
    gcc is a C++ compiler. g++ uses gcc, but just in a way that it treats all files as C++ files (including *.c files)
    – elimirks
    Commented Oct 2, 2013 at 17:13

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.