SFML 安装没有库复制到 /Library/Frameworks。 [MacOS]

问题描述 投票:0回答:1

我正在尝试运行 SFML 程序,但它无法加载库。我知道安装步骤建议:

>将Frameworks的内容复制到/Library/Frameworks. https://www.sfml-dev.org/tutorials/2.5/start-osx.php

但是,我想尽可能少地扰乱我的系统。我希望设置

DYLD_LIBRARY_PATH
是一个可行的解决方案。由于错误是:

dyld[51155]: Library not loaded: @rpath/sfml-audio.framework/Versions/2.5.1/sfml-audio
  Referenced from: <...> /Users/jeffrey/workspace/SFML-2.5.1-macos-clang/examples/pong/pong
  Reason: tried: '/System/Volumes/Preboot/Cryptexes/OS@rpath/sfml-audio.framework/Versions/2.5.1/sfml-audio' (no such file), '/Library/Frameworks/sfml-audio.framework/Versions/2.5.1/sfml-audio' (no such file), '/System/Library/Frameworks/sfml-audio.framework/Versions/2.5.1/sfml-audio' (no such file, not in dyld cache)
Abort trap: 6

我设置:

pong> echo $DYLD_LIBRARY_PATH
/Users/jeffrey/workspace/SFML-2.5.1-macos-clang/Frameworks/sfml-audio.framework/Versions/2.5.1/

看起来设置正确:

pong> ls `echo $DYLD_LIBRARY_PATH`
Resources  sfml-audio

在尝试执行

./pong
告诉它实际使用变量时,我错过了一个步骤吗?或者我应该使用其他变量吗?

编辑: 使用

DYLD_FALLBACK_LIBRARY_PATH
不能解决问题。正如评论所暗示的那样,
otool
可能会有用(尽管我不确定它的作用)

    @rpath/sfml-audio.framework/Versions/2.5.1/sfml-audio (compatibility version 2.5.0, current version 2.5.1)
    @rpath/sfml-graphics.framework/Versions/2.5.1/sfml-graphics (compatibility version 2.5.0, current version 2.5.1)
    @rpath/sfml-window.framework/Versions/2.5.1/sfml-window (compatibility version 2.5.0, current version 2.5.1)
    @rpath/sfml-system.framework/Versions/2.5.1/sfml-system (compatibility version 2.5.0, current version 2.5.1)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 19.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)```
macos sfml libraries
1个回答
0
投票

设置

DYLD_LIBRARY_PATH
环境变量在大多数情况下应该有效,但在您的情况下,它似乎没有被动态链接器获取。一个可能的原因可能是
DYLD_LIBRARY_PATH
环境变量被其他环境变量或设置覆盖。您可以尝试设置
DYLD_LIBRARY_PATH
,而不是设置
DYLD_FALLBACK_LIBRARY_PATH
。此变量指定用于搜索在默认搜索路径中找不到的共享库的目录列表。这是一个如何设置
DYLD_FALLBACK_LIBRARY_PATH
的例子:

export DYLD_FALLBACK_LIBRARY_PATH=/Users/jeffrey/workspace/SFML-2.5.1-macos-clang/Frameworks

这将后备库路径设置为 SFML 安装目录中的 Frameworks 目录。确保将

/Users/jeffrey/workspace/SFML-2.5.1-macos-clang
替换为 SFML 安装目录的实际路径。一旦你设置了
DYLD_FALLBACK_LIBRARY_PATH
,尝试再次运行你的SFML程序。它现在应该能够在 Frameworks 目录中找到所需的共享库。

© www.soinside.com 2019 - 2024. All rights reserved.