Linux下测试使用lib.so

--2017-01-04上次测试-I -L 有起作用。今天意外不行,所以就只能放在同一个目录下面或者通过软连接(ln -s  source destination)或硬连接(ln source destination)

mv libmy.so  inh/

http://www.cnblogs.com/wancy86/p/linux_inode.html       rm -rf symbolic_name删除

通过find / -name libmy.so  可以找到实时的位置./mydll/inh/ilbmy.so

但是通过locate libmy.so 找到的是 旧位置/mydll/libmy.so具体情况尚不清楚(虽然看到看到说locate是非实时位置)

==============================================================

-I.       #大写i 头文件目录/位置[.h] #include<...> 或者 #include"..."  若在同一目录下,<>必须有此项,""可以无此项   eg:   -I./inc   -I.

-L.    #动态库lib.so目录/位置[.dll]  eg:  -L./lib     -L.

-l     #小写的L用到的动态库  eg:生成的文件名为libname.so  使用 -lname

***********************************

源文件

myso.h

#ifndef _MYSO_H
#define _MYSO_H
extern int add(int,int);
extern int dec(int ,int);
extern int axb(int,int);
#endif

add.c

#include"myso.h"
int add(int x,int y)
{
 return (x+y);
}


dec.c

#include"myso.h"
int dec(int x,int y)
{
 return (x-y);
}


axb.c

#include"myso.h"
int axb(int x,int y)
{
 return (x*y);
}

shell批处理脚本

filename: th.sh

#!/bin/bash
gcc add.c dec.c axb.c -fPIC -shared -o libmy.so

$ chmod +x th.sh
$ ./th.sh

方法学习http://www.cnblogs.com/huangxinzhen/p/4047051.html

***********************************

//使用该动态库 #include<> 同目录下必须有-I.

compile:  gcc fur.c -I. -L. -lmy  -o XJY

run1:          ./XJY

run2:           XJY

fur.c

#include<stdio.h>
#include<myso.h>
int main()
{
  printf("1+2=%d 2-3=%d 5*6=%d\n",add(1,2),dec(2,3),axb(5,6));
  return 0;
}


 

***********************************

//使用该动态库 #include""同目录下可以无-I.

 

compile: gcc fur.c -L.  -lmy  -o XJY

run1:         ./XJY  

run2:        XJY

fur.c

#include<stdio.h>
#include"myso.h"
int main()
{
  printf("1+2=%d 2-3=%d 5*6=%d\n",add(1,2),dec(2,3),axb(5,6));
  return 0;
}


 

***********************************

//使用该动态库 无引用头文件 直接链接不报错(分开编译链接会 warning)

compile: gcc fur.c   -L.  -lmy  -o XJY

run1:         ./XJY  

run2:        XJY

#include<stdio.h>
int main()
{
  printf("1+2=%d 2-3=%d 5*6=%d\n",add(1,2),dec(2,3),axb(5,6));
  return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值