文件无法识别:文件截断GCC错误

Adr*_*ian 42 c++ eclipse gcc

我正在尝试使用Eclipse在Linux中编译一个简单的"Hello World"程序,但我总是得到这个:

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 ****
Run Code Online (Sandbox Code Playgroud)

有谁知道问题是什么?

小智 87

只需删除目标文件即可.

在上一次构建中断并且未完全生成目标文件之后,很可能出现此错误.


Rai*_*ner 12

就像一个信息,如果有人来到这里.

另一个问题(具有相同的错误)可能是,您正在使用ccache进行更快的编译.在这种情况下,损坏的*.o文件也存在.因此,您必须使用清理缓存

ccache -C (注意大写C!)

第一次浪费我几个小时;-)

  • 您可能不想吹走整个缓存.相反(从手册页),您可以从构建目录中删除损坏的目标文件,然后使用`CCACHE_RECACHE` set进行构建. (3认同)