首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

怎么在Mac OSX 中制作dylib和使用dylib

2012-10-07 
如何在Mac OSX 中制作dylib和使用dylib如何在Mac OSX 中制作dylib和使用dylib本文本着简单易读的方式给朋

如何在Mac OSX 中制作dylib和使用dylib

如何在Mac OSX 中制作dylib和使用dylib

本文本着简单易读的方式给朋友们,本人为原创

1.首先是构建一个函数库

? 编辑add.c

? int add(int a,int b)

? {

?return a+b;

? }

? int axb(int a,int b)

? {

?return a*b;

? }

? 保存

? 其中两个函数  add ?axb

? 这是简单的写的,复杂的自己开发,这里主要介绍方法

2.编译函数库

? gcc -c add.c -o add.o

? //下面是linux系统时

? ar rcs libadd.a add.o  

? //如果你是linux 就用这种库

? //下面是Mac OSX?

? gcc add.o -dynamiclib -current_version 1.0 ?-o libadd.dylib

? 得到 libadd.dylib

3.编辑testadd.c

? #include <stdio.h>

? #include <stdlib.h>

? #include <dlfcn.h>

? int main(int argc,char *argv[])

? {

int a,b;

a=10;

b=9;

? ? ? ? int c;

c=add(a,b);

printf("%d\n",c);

return 1;

? }

? 保存

4.编译testadd.c

? gcc testadd.c -o testadd -L. -ladd

? ./testadd

?

? 输出19

?

5.编辑dladd.c

? #include <stdio.h>

? #include <stdlib.h>

? #include <dlfcn.h>

? int main(int argc,char *argv[])

? {

int *ab;

void *h=dlopen("./libadd.dylib",RTLD_LAZY);

ab=dlsym(h,"add");

printf("add=address is 0x %x\n",ab);

dlclose(h);

return 1;

? }

? 这个是为了查看函数库在库中的地址的

6.编译dladd.c

? ?gcc dladd.c -o dladd -ldl

? ?./dladd

?

? ?add=address is 0x 23fe2

? ?这是输出的地址了

?

?

1 楼 happyjan 2012-02-17   找到高手了。
麻烦您,我这有个MAC OS unix可执行文件,需要安装libxview.a文件在usr/openwin。不理解如何安装,本人就直接创建openwin目录,并将libxview.a文件复制到此目录下。结果在x11中运行可执行文件时,提示出错信息,dyld:Library not loaded:/usr/openwin/lib/libxview.dylib.按照您提示的方法创建*.a文件的*.dylib,失败。望指教! 2 楼 qvb3d 2012-04-01   export  DYLD_LIBRARY_PATH=/usr/openwin/lib

再运行就可以了

以后常来我博客
我在深圳,也可以联系我,大家相互学习

msn:  qvb3d@live.cn 3 楼 qvb3d 2012-04-25   sudo install_name_tool -id /usr/openwin/lib/libxview.dylib

热点排行