【发布时间】:2018-04-09 17:17:42
【问题描述】:
dyld(动态链接编辑器)的手册页说:
DYLD_FALLBACK_LIBRARY_PATH ... 是一个冒号分隔的包含库的目录列表。它用作在其安装路径中找不到的库的默认位置。默认设置为 $(HOME)/lib:/usr/local/lib:/lib:/usr/lib。
然而,与手册页相反,DYLD_FALLBACK_LIBRARY_PATH 在 Mac OS X 上默认为空或未定义,如以下 bash 命令所示。
printenv DYLD_FALLBACK_LIBRARY_PATH
# OR
echo $DYLD_FALLBACK_LIBRARY_PATH
事实上,dyld 的手册页上列出和解释的所有环境变量都是空的或未定义的,如以下 bash 脚本所示。
#!/bin/bash
while IFS=$'\n' read -r; do
printf %b "$REPLY = "
printenv "$REPLY"
echo
done < <(cat << EOF
DYLD_FRAMEWORK_PATH
DYLD_FALLBACK_FRAMEWORK_PATH
DYLD_LIBRARY_PATH
DYLD_FALLBACK_LIBRARY_PATH
DYLD_ROOT_PATH
DYLD_SHARED_REGION
DYLD_INSERT_LIBRARIES
DYLD_FORCE_FLAT_NAMESPACE
DYLD_IMAGE_SUFFIX
DYLD_PRINT_OPTS
DYLD_PRINT_ENV
DYLD_PRINT_LIBRARIES
DYLD_PRINT_LIBRARIES_POST_LAUNCH
DYLD_BIND_AT_LAUNCH
DYLD_NO_FIX_PREBINDING
DYLD_DISABLE_DOFS
DYLD_PRINT_APIS
DYLD_PRINT_BINDINGS
DYLD_PRINT_INITIALIZERS
DYLD_PRINT_REBASINGS
DYLD_PRINT_SEGMENTS
DYLD_PRINT_STATISTICS
DYLD_PRINT_DOFS
DYLD_NO_PIE
DYLD_SHARED_CACHE_DIR
DYLD_SHARED_CACHE_DONT_VALIDATE
EOF
)
此外,虽然/etc/ld.so.conf 是 Linux 存储加载程序为查找库而搜索的所有目录的位置,但 Mac OSX 缺少 /etc/ld.so.conf。
那么,Mac OS X 在哪里存储库的默认搜索路径?
【问题讨论】:
-
我也面临这个问题。我想将路径附加到 DYLD_FALLBACK_LIBRARY_PATH 或 DYLD_LIBRARY_PATH 但我无法查询它的当前值。我相信这个问题非常中肯,我宁愿使用 OSx 硬编码值,也不愿自己硬编码另一个值。 ://