[Assorted-commits] SF.net SVN: assorted:[1298] sandbox/trunk/src/c
Brought to you by:
yangzhang
From: <yan...@us...> - 2009-03-17 07:09:00
|
Revision: 1298 http://assorted.svn.sourceforge.net/assorted/?rev=1298&view=rev Author: yangzhang Date: 2009-03-17 07:08:58 +0000 (Tue, 17 Mar 2009) Log Message: ----------- simple linking demo Added Paths: ----------- sandbox/trunk/src/c/linking/ sandbox/trunk/src/c/linking/Makefile sandbox/trunk/src/c/linking/a.c sandbox/trunk/src/c/linking/a.h sandbox/trunk/src/c/linking/b.c Added: sandbox/trunk/src/c/linking/Makefile =================================================================== --- sandbox/trunk/src/c/linking/Makefile (rev 0) +++ sandbox/trunk/src/c/linking/Makefile 2009-03-17 07:08:58 UTC (rev 1298) @@ -0,0 +1,4 @@ +all: a +a: a.o b.o +clean: + rm -f *.o a Added: sandbox/trunk/src/c/linking/a.c =================================================================== --- sandbox/trunk/src/c/linking/a.c (rev 0) +++ sandbox/trunk/src/c/linking/a.c 2009-03-17 07:08:58 UTC (rev 1298) @@ -0,0 +1,2 @@ +#include "a.h" +int main() { foo(); bar(); return 0; } Added: sandbox/trunk/src/c/linking/a.h =================================================================== --- sandbox/trunk/src/c/linking/a.h (rev 0) +++ sandbox/trunk/src/c/linking/a.h 2009-03-17 07:08:58 UTC (rev 1298) @@ -0,0 +1,14 @@ +// Must either make static or leave extern but only the decl (no def), or else you'll get: +// +// $ make +// cc -c -o a.o a.c +// cc -c -o b.o b.c +// cc a.o b.o -o a +// b.o: In function `foo': +// b.c:(.text+0x0): multiple definition of `foo' +// a.o:a.c:(.text+0x0): first defined here +// collect2: ld returned 1 exit status +// make: *** [a] Error 1 + +static int foo() { return 0; } +int bar(); Added: sandbox/trunk/src/c/linking/b.c =================================================================== --- sandbox/trunk/src/c/linking/b.c (rev 0) +++ sandbox/trunk/src/c/linking/b.c 2009-03-17 07:08:58 UTC (rev 1298) @@ -0,0 +1,3 @@ +#include "a.h" +int bar() { return 0; } +int b() { foo(); bar(); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |