Macos 如何在Mac OS X上查找目标代码库的默认搜索路径?

Macos 如何在Mac OS X上查找目标代码库的默认搜索路径?,macos,linker,ld,lib,Macos,Linker,Ld,Lib,dyld(动态链接编辑器)的手册页上写着: 动态备份库路径。。。是包含库的目录的冒号分隔列表。它用作安装路径中找不到的库的默认位置。默认情况下,它设置为$(HOME)/lib:/usr/local/lib:/lib:/usr/lib 但是,与手册页相反,在Mac OS X上,DYLD_FALLBACK_LIBRARY_PATH默认为空或未定义,如下bash命令所示 printenv DYLD_FALLBACK_LIBRARY_PATH # OR echo $DYLD_FALLBACK_LIBRA

dyld
(动态链接编辑器)的手册页上写着:
动态备份库路径。。。是包含库的目录的冒号分隔列表。它用作安装路径中找不到的库的默认位置。默认情况下,它设置为$(HOME)/lib:/usr/local/lib:/lib:/usr/lib

但是,与手册页相反,在Mac OS X上,DYLD_FALLBACK_LIBRARY_PATH默认为空或未定义,如下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
)
#/bin/bash
而IFS=$'\n'读-r;做
printf%b“$REPLY=”
printenv“$REPLY”
回声

完成<我是这个问题的首席执行官(46986246)

我没有足够的权限编辑我的问题或添加评论。jwdonahue补充说,我的问题可能与7285587重复。让我向他解释

这里是7285587和我的问题之间的区别。 帖子7285587询问默认搜索路径是什么。 我知道默认搜索路径是dyld手册页上写的
$(HOME)/lib:/usr/local/lib:/lib:/usr/lib
,并且我知道存在7285587

另一方面,我的问题是默认搜索路径存储在哪里。尽管手册页说它存储在环境变量DYLD\u FALLBACK\u LIBRARY\u PATH中,但我发现它没有存储在DYLD\u FALLBACK\u LIBRARY\u PATH中。即使DYLD\u FALLBACK\u LIBRARY\u路径为空,
configure
脚本和/或
ld
似乎从某处学习默认搜索路径。因此,库的默认搜索路径似乎存储在DYLD_FALLBACK_LIBRARY_path之外的其他位置

我想知道它存储在哪里,以及如何验证它是
$(HOME)/lib:/usr/local/lib:/lib:/usr/lib

顺便说一下,我正在尝试将Linux程序移植到MacOSX。我的问题与Cocoa或OSX原生程序无关。因此,我的问题与/Library、/System/Library或~/Library无关

那么,MacOSX在哪里存储库的默认搜索路径


它只是硬编码到动态加载程序(dyld)中。在中搜索“SlibraryFallbackpath”。顺便说一下,它表明手册页包含“/lib”是不正确的。这实际上不是默认搜索路径的一部分。

似乎是我面临的可能的重复。我想将一个路径附加到DYLD\u FALLBACK\u LIBRARY\u path或DYLD\u LIBRARY\u path,但我无法查询它的当前值。我相信这个问题非常贴切,我宁愿使用OSx硬编码值,也不愿自己硬编码另一个值/