Mac Ports环境变量

时间:2016-03-16 15:37:54

标签: xcode macports

export DYLD_LIBRARY_PATH="/opt/local/lib"

我正在看这条线,脑子里有很多问题。我是MacPorts的新手,我正在学习使用它,但经过许多主题,教程和文章后,我现在感到困惑。

如果下次我错了,请纠正我:

Mac Ports将库安装到不同的目录/opt/local/lib而不是/usr/local/lib。 我对此有了解,但如果我想使用MacPorts

,我会遇到问题

我目前在我的机器上有两个项目A和B. 项目A与/usr/local/lib的默认库保持一致, 项目B是我希望将环境指向/opt/local/lib的项目,以便使用Mac Ports安装的库正确构建。

我怎样才能将项目B的环境DYLD_LIBRARY_PATH设置为/ opt / local / lib,但下次重建时它不会影响项目A. (关于这一点,我可能错了吗?)

我看到有人写道我们可以使用export environment_var_name = value来达到目的,下次重建时它会影响我机器上的所有项目吗? (关于这一点,我可能错了吗?)

其他人告诉我们可以通过在Xcode上添加/修改项目方案的值来专门为项目设置环境变量。这样做是否正确?

如果我的问题可能导致答案很长,请随时公开您的意见。

1 个答案:

答案 0 :(得分:1)

不要这样做。

您永远不需要在测试之外设置DYLD_LIBRARY_PATH(在构建期间非常有限的情况下)。它绝不应该用在生产代码中,永远不会发送给用户,也绝不推荐给那些对dyld如何工作有深刻理解的人。它与ld.so中的LD_LIBRARY_PATH不相似。如果你在.bashrc或其他init脚本中设置它会立即显现,这将导致很多问题。它将导致使用MacPorts库而不是系统库,这将导致代码签名验证问题,二进制兼容性问题以及由于库版本不匹配而导致进程启动中止。

如果您想使用MacPorts库,请通过设置标题搜索路径和库搜索路径,将项目与您的项目链接,而不是链接到您在/ usr / local中安装的项目。

此外,您使用/ usr / local可能会导致MacPorts安装出现问题,因为/ usr / local是默认搜索路径的一部分。