为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ITMISS 2018-11-15 19:15:10
如何在Mac OSX 中制作dylib和使用dylib
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超5个赞

 如何在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



查看完整回答
反对 回复 2018-12-13
  • 1 回答
  • 0 关注
  • 1560 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信