【问题标题】:Linking SFML audio in linux?在 Linux 中链接 SFML 音频?
【发布时间】:2018-09-24 08:20:32
【问题描述】:

当我想使用时我需要链接哪些库 我有

if(! sb.loadFromFile("Intro.wav")){
    exit(-1);
}
intro.setBuffer(sb);
intro.setLoop(true);
intro.play();

我试过了

g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system -lsfml-audio  Menu.o

但是编译器会抛出类似的错误

undefined reference to `sf::SoundBuffer::SoundBuffer()'
undefined reference to `sf::Sound::Sound()'

【问题讨论】:

  • 订单可能很重要。试着把sfml-system放在最后。或先Menu.o。或使用$(pkg-config sfml-all --libs)
  • 你能发布你用来编译/链接的完整命令吗?
  • 非常感谢。 $(pkg-config sfml-all --libs) 有效。

标签: c++ audio sfml


【解决方案1】:

链接顺序很重要。

我倾向于遵循“依赖”规则。如果 X 依赖于 Y,那么 X 必须在 Y 之前。所有的 SFML 模块都依赖于 SFML 系统模块,所以系统模块需要在最后。此外,您的目标文件依赖于 SFML,因此它们需要位于 SFML 库之前。

g++ main.o Menu.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-audio -lsfml-system

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-02
    • 2013-08-27
    • 1970-01-01
    • 2016-05-08
    • 2015-11-23
    • 2017-07-26
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多