2

我使用 Mac OS X Developer Tools 的捆绑属性列表编辑器将环境变量 DYLD_LIBRARY_PATH_64 位设置为文件 ~/.MacOSX/environment.plist 中的值 path/to/dylib。我保存了这个文件并注销了。

重新登录后,控制台显示多条消息“dyld:警告,未知环境变量:DYLD_LIBRARY_PATH_64-bit”。我使用属性列表编辑器从 environment.plist 中删除了条目,保存了文件并注销。

我重新登录,警告消息仍然存在。dyld 手册页显示了一个常量列表,这些常量看起来类似于我任性的环境变量,因为它们都以“DYLD_”开头。源文件 dyld.cpp 在一长行 DYLD 常量之后显示了一个 else,并带有打印相同警告消息的代码。也许我飞得太近了环境变量命名的太阳。我以为我们是自由的!

我试过 update_dyld_shared_cache 无济于事。也许我错过了一些重要的标志?

我在 /etc/launchd.conf 中添加了“setenv DYLD_LIBRARY_PATH_64-bit path/to/dylib”,试图在我的路径中添加一个(显然格式错误的)环境变量,希望如果它出现,我可以删除它——但没有成功.

从命令行,导出不显示 DYLD_LIBRARY_PATH_64 位。这是一些示例输出:

$ unset $DYLD_LIBRARY_PATH_64-bit 
-bash: unset: -b: invalid option

$ echo $DYLD_LIBRARY_PATH_64-bit
-bit

$ unset DYLD_LIBRARY_PATH_64-bit
-bash: unset: `DYLD_LIBRARY_PATH_64-bit': not a valid identifier

这个故事的寓意是永远不要使用属性列表编辑器,至少对于动态库路径。好吧,不——这个故事的寓意是永远不要在环境变量名称的末尾使用破折号,因为它们看起来像 flags

话虽如此,对于摆脱这个伪装的环境变量,以及清理我的控制台中重复的 dyld 警告,你有什么建议吗?

谢谢!

4

3 回答 3

1

这是解决属性列表编辑器无意中设置的不可见环境变量的一种方法:重新格式化机器。打扫。用火清洗。

对我们所有人,尤其是我自己来说,这是一个发人深省的教训。使用属性列表编辑器时,不要在环境变量中使用破折号,以免您被 dyld: 警告消息所困扰。主板很糟糕,因为她的 CPU 没有生产力,相反,她只能将消息打印到文件 2(标准错误)。

不认真:属性列表编辑器将允许您指定 Bash 永远不会让您逃脱的虚假环境变量。在“用户必须知道他在做什么”的意义上,Mac OS X 变得类似于 UNIX。

于 2010-09-02T21:13:33.120 回答
0

实际上,如果您设置任何以 DYLD_ 开头但不在苹果列表中的环境变量, 您会收到一条唠叨消息。

我希望有一个标志可以关闭它

于 2014-06-20T05:31:51.113 回答
0

DYLD 库路径变量在 Mac 上不会消失的类似问题对我有用:

使用该unset命令,并采取良好措施,在我unset再次使用exported它之后......

即类似的东西

$ unset DYLD_LIBRARY_FALLBACK_PATH    
$ export DYLD_LIBRARY_FALLBACK_PATH
于 2012-06-10T21:18:14.970 回答