C 加载.so文件时未加载.dylib文件

C 加载.so文件时未加载.dylib文件,c,redis,shared-libraries,dylib,C,Redis,Shared Libraries,Dylib,我想在redis中使用INCR,超出其最大值9223372036854775807。所以我用gmp.h编写了一个redis模块C代码。在C代码中,我读取键(要递增的键)中的值,使用gmp.h中的函数递增,然后写回同一个键 我先创建.o文件,然后创建.so文件,它在我的mac中运行良好。当我把.so文件给我的朋友时,.so文件没有加载,她出现了一个错误 未加载库:/usr/local/lib/libgmp.10.dylib 我猜这是因为我的朋友没有在她的mac上安装gmp 但我认为它会起作用。有没

我想在redis中使用INCR,超出其最大值9223372036854775807。所以我用gmp.h编写了一个redis模块C代码。在C代码中,我读取键(要递增的键)中的值,使用gmp.h中的函数递增,然后写回同一个键

我先创建.o文件,然后创建.so文件,它在我的mac中运行良好。当我把.so文件给我的朋友时,.so文件没有加载,她出现了一个错误

未加载库:/usr/local/lib/libgmp.10.dylib

我猜这是因为我的朋友没有在她的mac上安装gmp

但我认为它会起作用。有没有办法让它在我朋友的macbook上运行而不安装库

用于创建.o和.so文件的命令

gcc -dynamic -fno-common -std=gnu99 -c -o mycommand.o mycommand.c
ld -o mycommand.so mycommand.o -bundle -undefined dynamic_lookup -lc -lgmp

分享。所以不推荐AFAIK,但是看到有人开发Redis是非常棒的module@ItamarHaber但是说只能使用共享的对象文件安全,我的意思是共享。因此,与您的朋友共享不是一个好办法:)他/她应该在自己的设置中编译。@ItamarHaber您可以添加这个作为答案吗,所以我投了赞成票,问题结束了