53
votes

I'm trying to compile a simple "Hello World" program in Linux using Eclipse, but I always get this:

Building target: hello
Invoking: GCC C++ Linker
g++  -o "hello"  ./src/hello.o   
./src/hello.o: file not recognized: File truncated
collect2: ld returned 1 exit status
make: *** [hello] Error 1

**** Build Finished ****

Does anyone have an idea what the problem is?

3

3 Answers

108
votes

Just remove the object file.

This error most likely appeared after the previous build was interrupted and object file was not generated completely.

19
votes

Just as an info if someone comes around here.

Another problem (with the same error) could be, that you are using ccache for faster compilation. In this case, the corrupt *.o file is there as well. So for that reason you have to clean the cache with

ccache -C (note the upper case C!)

Wasted me hours the first time ;-)

2
votes

I think

g++  -o "hello"  ./src/hello.o  
should be ./src/hello.(c | cpp | cc depending on your language type)