如何在Mac OSX 中制作dylib和使用首先是构建一个函数库 编辑 int add(int a,int b) { return a+b; } int axb(int a,int b) { return a*b; } 保存 其中两个函数 add axb 这是简单的写的,复杂的自己开发,这里主要介绍方法编译函数库 gcc -c -o //下面是linux系统时 ar rcs a //如果你是linux 就用这种库 //下面是Mac OSX gcc -dynamiclib -current_version 0 -o dylib 得到 编辑 #include #include #include 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; } 保存编译 gcc -o testadd -L -ladd /testadd 输出19 编辑 #include #include #include int main(int argc,char *argv[]) { int *ab; void *h=dlopen("/dylib",RTLD_LAZY); ab=dlsym(h,"add"); printf("add=address is 0x %x\n",ab); dlclose(h); return 1; } 这个是为了查看函数库在库中的地址的编译 gcc -o dladd -ldl /dladd add=address is 0x 23fe2 这是输出的地址了一下内容为另一篇文章提取出来的:上面说的如何在代码里调用,貌似有些含糊不清,下面是调用的示例: NSString *dyPath = @"/pengpeng/temp/dylib";//这是生成的dylib文件的位置 void *handle = dlopen([dyPath cStringUsingEncoding:NSUTF8StringEncoding], RTLD_LAZY); if (handle) { NSLog(@"open dylib success"); int (*function)(int a,int b) = dlsym(handle, "add");//add为方法名,这里用函数指针 if (function) { NSLog(@"open function success,1+1=%d",function(1,1)); } dlclose(handle); }