【问题标题】:What are the default search directories to link a library on Mac OS X在 Mac OS X 上链接库的默认搜索目录是什么
【发布时间】:2011-11-09 06:41:42
【问题描述】:

我在 Mac OS X 上使用 CMake 构建了Google Test,并获得了两个共享库:libgtest.dyliblibgtest_main.dylib。现在我需要安装它们。我知道Linux上有一些默认的搜索目录,如/usr/lib/usr/local/lib等。但是我对Mac OS X不熟悉并且不知道在哪里放置这些库。

Mac OS X Directory Structure,我发现有三个库目录:~/Library/Library/usr/lib。我尝试将 gtest 库分别放入这些目录中,发现只有 /usr/lib 有效。

我想知道的是,Mac OS X 上的默认搜索目录是否有一些规则,就像在 Linux 和 Windows 上一样。

【问题讨论】:

  • 我想知道为什么“libgtest_main.dylib”这个词没有斜体效果,因为我在它之前和之后输入了*
  • 我对这个问题投了赞成票。因为这是一件经常做错的事情,这让我很痛苦。请参阅下面我对 aponomarenko 答案的评论。

标签: macos deployment linker shared-libraries osx-leopard


【解决方案1】:

查看dyld链接器使用的环境变量的默认值:

DYLD_FALLBACK_LIBRARY_PATH
...
默认情况下,它设置为 $(HOME)/lib:/usr/local/lib:/lib:/usr/lib

This 有关“在 Mac OS X 上部署应用程序”的文章和 other 有关“Mac OS X 安装程序”的文章也可能会有所帮助。

【讨论】:

  • 您当然不会在“非用户目录”中部署库,例如 /lib 等。通常 Mac 应用程序捆绑到 AppName.app 目录中。没有什么能阻止您将库放入其中;D 这两个链接非常好。
猜你喜欢
  • 2018-04-09
  • 2016-02-14
  • 2015-02-03
  • 2010-09-27
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多