23,216
社区成员




/*
* main.c
*/
#include <stdio.h>
void foo(void);
int
main(void)
{
(void)printf("%s: %s\n", __FILE__, __FUNCTION__);
foo();
return (0);
}
/*
* foo.c
*/
#include <stdio.h>
void bar(void);
void
foo(void)
{
(void)printf("%s: %s\n", __FILE__, __FUNCTION__);
bar();
}
/*
* bar.c
*/
#include <stdio.h>
void
bar(void)
{
(void)printf("%s: %s\n", __FILE__, __FUNCTION__);
}
#! /bin/sh -x
#
# build.sh
#
cc -c -fPIC -DPIC bar.c
cc -shared -o libbar.so bar.o
ar cr libbar.a bar.o
ranlib libbar.a
cc -c -fPIC -DPIC foo.c
cc -shared -o libfoo.so foo.o -Wl,-rpath=./ -L./ -lbar
cc -shared -o libfoostatic.so foo.o -Wl,-rpath=./ libbar.a
cc -c main.c
cc -o foobar -Wl,-rpath=./ main.o -L./ -lfoo
cc -o foobarstatic -Wl,-rpath=./ main.o -L./ -lfoostatic
ldd foobar foobarstatic
uname -msvrp