情况是:
1. a.c 生成 a.so
2. b.c 生成b.so 依赖于a.so
3. c.c 依赖b.so
目录结构:
a.c b.c c.c 都在一个./libso目录中,而生成的a.so,b.so 存在于./libso/lib中
1. 生成a.so:
2. 生成b.so (依赖于a.so-->选项-la,查找目录从当前目录查找
3. 把a.so和b.so移动到lib目录中:
mv a.so b.so ./lib
4. 编译c.c出错,提示找不到liba.so:
5. -rpath显身手,注意,中间试了几个错误路径也不会提示错误:
6. 运行测试:
a.c的源代码:
#include
#include
void a(){
printf("This is a.so \n");
}
b.c的源代码:
#include
#include
void b(){
printf("This is b.so \n");
a();
}
c.c的源代码:
#include
#include
int main(void){
printf("=========\n");
b();
return 0;
}
阅读(2850) | 评论(0) | 转发(0) |