Next: Runtime error messages, Previous: Compiler error messages, Up: Common error messages [Contents][Index]
file not recognized: File format not recognized
GCC uses the extension of a file, such as .c or .cc, to determine its content. If the extension is missing GCC cannot recognize the file type and will give this error.
Example:
#include <stdio.h> int main (void) { printf ("Hello World!\n"); return 0; }
If the program above is saved in a file hello without any extension then compiling it will give the error:
$ gcc -Wall hello hello: file not recognized: File format not recognized collect2: ld returned 1 exit status
The solution is to rename the file to the correct extension, in this case hello.c.
undefined reference to `foo'
collect2: ld returned 1 exit status
This error occurs when a program uses a function or variable which is not defined in any of the object files or libraries supplied to the linker. It can be caused by a missing library or the use of an incorrect name. In the error message above, the program collect2 is part of the linker.
Example:
int foo(void); int main (void) { foo(); return 0; }
If this program is compiled without linking to a library or object file
containing the function foo()
there will be an undefined
reference error.
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
This error is a special case of the error above, when the missing
function is main
. In C and C++, every program must have a
main
function (where execution starts). When compiling an
individual source file without a main
function, use the option
-c (see Creating object files from source files).
Next: Runtime error messages, Previous: Compiler error messages, Up: Common error messages [Contents][Index]