我有一个正在编译的程序,它需要新版本的Curl。Mac默认Curl位于/usr/bin和/usr/lib中。我已编译了较新版本的curl,并使用以下方法进行编译:
gcc mypgm.c -I ./curl-7.58.0/include/curl -I ./cJSON-master -L ./cJSON-master/build ./libcjson.1.7.1.dylib ./libcurl.4.dylib -o mypgm
当我运行mypgm时,我得到一个错误:
Incompatible library version: mypgm requires version 10.0.0 or later, but libcurl.4.dylib provides version 7.0.0
跑步
otool
我发现我的build dir中的libcurl是正确的,但它似乎想要使用/usr/lib版本,它不能被删除(如果不禁用SIP、delete、reenable,我就不想这样做,以防将来的版本重新安装)。
所以我的问题是双重的。
-
我想知道是否有可能
$PATH
为了改变macOS查找库的方式(我读了一些关于
LD_LIBRARY_PATH
和
DYLD_LIBRARY_PATH
被忽略),以及
-
我应该如何重做
gcc
行到静态链接那些库?