Mac 端口环境变量

Mac Ports environment variables

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 端口安装的库正确构建。

如何才能将项目B的环境DYLD_LIBRARY_PATH设置为/opt/local/lib,但下次重建时不会影响项目A? (我在这一点上可能是错误的吗?)

看到有人写说可以用export environment_var_name=value来达到目的,请问下回rebuild的时候会影响我机器里的所有工程吗? (我在这一点上可能是错误的吗?)

其他人告诉我们可以通过 adding/modifying Xcode 上项目方案上的值来具体设置项目的环境变量。这是正确的做法吗?

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

不要那样做。

您永远不需要在测试之外设置 DYLD_LIBRARY_PATH(在非常有限的情况下,在构建过程中)。它永远不应该在生产代码中使用,永远不要交付给用户,永远不要推荐给对 dyld 的工作原理没有深刻理解的人。它与 ld.so 中的 LD_LIBRARY_PATH 不同。如果您将它设置在您的 .bashrc 或其他不会立即显现的初始化脚本中,它将给您带来很多问题。它将导致使用 M​​acPorts 库而不是系统库,这将导致代码签名验证问题、二进制兼容性问题以及由于库版本不匹配而在进程启动时中止。

如果您想使用 MacPorts 库,link 您的项目将针对它们而不是您在 /usr/local 中安装的项目,方法是设置您的 header 搜索路径和库搜索路径。

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