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上添加/修改项目方案的值来专门为项目设置环境变量。这样做是否正确?
如果我的问题可能导致答案很长,请随时公开您的意见。
答案 0 :(得分:1)
不要这样做。
您永远不需要在测试之外设置DYLD_LIBRARY_PATH(在构建期间非常有限的情况下)。它绝不应该用在生产代码中,永远不会发送给用户,也绝不推荐给那些对dyld如何工作有深刻理解的人。它与ld.so中的LD_LIBRARY_PATH不相似。如果你在.bashrc或其他init脚本中设置它会立即显现,这将导致很多问题。它将导致使用MacPorts库而不是系统库,这将导致代码签名验证问题,二进制兼容性问题以及由于库版本不匹配而导致进程启动中止。
如果您想使用MacPorts库,请通过设置标题搜索路径和库搜索路径,将项目与您的项目链接,而不是链接到您在/ usr / local中安装的项目。
此外,您使用/ usr / local可能会导致MacPorts安装出现问题,因为/ usr / local是默认搜索路径的一部分。