论坛徽章: 0
10 可用积分
我的目录结构:
./src/funs.c,Makefile
./header/funs.h
./main/main.c
./Makefile
/*******************************************************************
* ./src/funs.c
********************************************************************/
#include <stdio.h>
int my_add(int a,int b)
{
return (a+b);
}
/*******************************************************************
* ./src/Makefile
********************************************************************/
../libfuns.a:funs.o
ar crv $@ $^
funs.o:funs.c
gcc -c $^
/*******************************************************************
* ./main/main.c
********************************************************************/
#include "funs.h"
void interface()
{
int i=1,j=2;
printf("The result of %d and %d is %d",i,j,my_add(i,j));
}
/*******************************************************************
* ./Makefile
********************************************************************/
mylib:main.o
gcc -nostdlib -W1,-soname,libmain.so -W1,-shared,-Bsymbolic
-L. -lfuns -I./header $^ -o libmain.so
main.o: ./main/main.c
gcc -c -fno-exceptions -fpic -Os -I./header -o $@ $^
clean:
rm *.o
我想把funs.c编译成一个libfuns.a,然后在把main.c和libfuns.a编成一个libmain.so,
先在./src目录执行make 生成libfuns.a,然后在./执行make生成libmain.so,
但是生成libmain.so,Link的时候,出现了链接不到my_add和printf的情况,请求大家的帮助。
[ 本帖最后由 gisspirit 于 2009-9-25 14:03 编辑 ]
我来回答