makefile里:
libtest.so: 1.o 2.o 3.o 4.o
gcc -shared -fPIC -o libtest.so 1.c
1.c 用到的方法都在2.o,3.o,4.o里, 现在编译libtest.so没问题,但是程序跑的时候,
提示 1.c调用2.o里的方法load fail;
小弟没怎么弄过makefile, 求大神指点!
把所有用到的so也放到程序当前目录
http://blog.csdn.net/nodeathphoenix/article/details/7528070
另外要注意平台,比如说x86编译的so,拿到arm的手机上肯定是不行的。
目录没问题的话就是平台问题
改成
libtest.so: 1.o 2.o 3.o 4.o
gcc -shared -fPIC -o libtest.so 1.c $^
试试
定义CFLAGS+=-fPIC试试。 1.o, 2.o 3.o 4.o被隐形规则编译,等同于gcc -o 1.o 1.c , 实际需要的是gcc -fPIC -o 1.o 1.c。