
I have been learning C back from basics. Recently i tried out a simple program myHello.c , which contained the following code :
1. //myHello.c
2. #include”hello.h”
3. int main(void)
4. {
5. hello(“WORLD”);
6. return 0;
7. }
next, i created hello.h that contained the following code :
1. //hello.h
2. void hello(const char* name);
Finally i created helloFunc.c that contained the declaration for hello() :
1. //helloFunc.c
2. #include<stdio.h>
3. #include”hello.h”
4. void hello(const char* name)
5. {
6. printf(“hello, %s \n”,name);
7. }
I compiled the C sources as follow :
gcc -Wall myHello.c helloFunc.c -o newHello
I received the following error :
/usr/lib/gcc/i486-linux-gnu-4.3.3/../../../../libcrt1.o: In function ‘_start’ :
/build/buildd/libc-2.9/csu/../sysdeps/i386/elf/start.S:115: undefined reference to ‘main’
collect2: ld returned 1 exit status
Solution:
just use a Makefile.
You need to build them using:
gcc -c helloFunc.c -o helloFunc.o
gcc -c myHello.c -o myHello.o
gcc myHello.o helloFunc.o -o hello
Like this:
Like Loading...