Reputation: 1058
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
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
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
Reputation: 2382
The simplest way is to precise the two files on the command line of gcc
:
gcc file1.c file2.c
Upvotes: 2