亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

 如何在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 關注
  • 1721 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號