amin__
amin__

Reputation: 1058

run a program with more than one source files in GNU c++ compiler

I am using DEV GNU c++ compiler on windows 7 OS. I need to know how a program with more than one source file can be compiled. here is example,

#FILE1
void f1()
{
   printf("this is another file under same program");
}

#FILE2

int main()
{
   f1();
   return 0;
}

Actually I need this to test how static, extern class specifier works with more than one file. So only I have to learn now how works with more than one files in a single program in C..

Thanks advance

Upvotes: 0

Views: 908

Answers (3)

sehe
sehe

Reputation: 392833

The technical term for 'multiple files' would be translation units:

g++ file1.cpp file2.cpp -o program

Or you separate compilation and linking

g++ -c file1.cpp -o file1.o
g++ -c file2.cpp -o file2.o

# linking
g++ file1.o file2.o -o program   

But that usually doesn't make sense unless you have a larger project (e.g. with make) and want to reduce build times.

Upvotes: 3

thb
thb

Reputation: 14434

To preprocess and compile as such:

gcc -c FILE1.c
gcc -c FILE2.c

Then, to link:

gcc -o EXECUTABLE FILE1.obj FILE2.obj

Alternately, you can do both in one step:

gcc -o EXECUTABLE FILE1.c FILE2.c

If it's a C++ program, then replace the gcc by g++ and the .c by .cpp.

It does not interest you, but for the benefit of similar readers who find your question later, FILE1.cpp may be named FILE1.cc or the like, and FILE1.obj may be named FILE1.o, depending on the reader's platform.

It may interest you that, depending on the shell you are using, you might have to write options like -o as /o.

Upvotes: 2

tofcoder
tofcoder

Reputation: 2382

The simplest way is to precise the two files on the command line of gcc:

gcc file1.c file2.c

Upvotes: 2

Related Questions