我想使用什么图书馆时需要链接
我有

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()'

最佳答案

链接顺序很重要。

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

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

关于c++ - 在Linux中链接SFML音频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49826044/

10-08 21:45