views:

110

answers:

2

Hi all,

I try to compile and link my application in 2 steps :

Compiling:

g++ -c -o file1.o file1.cc general_header.h
g++ -c -o file2.o file2.cc general_header.h
g++ -c -o file3.o file3.cc general_header.h

Linking:

g++ -o myApp file1.o file2.o file3.o

I'm getting a link error as following:

file1.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status

Am i doing something wrong ?

Thanks

+3  A: 

You should not be mentioning your header file on the command line - you don't want to compile it directly, but only as it is included in your source files. also, I would let the compiler name the object files, as it's too easy to make a typo when doing this explicitly. So your compilation commands should look like:

g++ -c file1.cc 

and you can then also say:

g++ -c file1.cc file2.cc file3.cc
anon
+2  A: 

No need to include header files in your input files list

g++ -c -o file1.o file1.cc

Yassin