我有一个本地构建的stack
项目,它将lib_.so
复制到El Capitan的共享lib目录中。这个共享对象本身与其他许多链接,所有这些文件都是.so
文件。我有另一个stack
项目将第一个项目引用为本地依赖项,并期望找到它复制到所述目录的共享库,但堆栈在共享目录中查找lib_.dylib
而不是lib_.so
。它有可能无法找到该文件。强制堆栈在OS X上查找.so文件而不是.dylib?
有没有办法告诉堆栈它应该使用.so
文件?如果我将根文件重命名为.dylib
堆栈可以找到它,但无法找到其他链接的文件,所有这些文件预计为.dylib
。
来自Stack bugtracker。 OS X上的共享库具有'.dylib'扩展名,而不是'.so',所以我猜想没有办法做到这一点。我认为这是由GHC执行的。所以第一个问题是,为什么你要在OS X上安装'.so'文件?然后,如果'.so'是一个Haskell库,这是一个糟糕的设置,如果它是任何其他库,它只是一个不可移植的构建脚本。 – Blaisorblade
部分回收:http://stackoverflow.com/a/2339910/53974表明'.so'对于*可加载模块/捆绑*是常见的(但非标准的),你不能链接(它们是应该在运行时加载)。 但是,“不可能像捆绑一样链接到共享库。”所以,如果*就是这种情况,那么你试图做的事情不应该起作用,尽管这可能不是你的事。 – Blaisorblade