我无法通过 gcc 编译带有 SFML 库的 c++

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

所以首先有一个名为 main.cpp 的文件,我想使用以下命令来编译它:

g++ -o sfml_example main.cpp -lsfml-graphics -lsfml-window -lsfml-system

顺便说一句,这是代码:

#include <SFML/Graphics.hpp>

int main() {
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML Window");
    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.clear();
        window.display();
    }
    return 0;
}

当我尝试编译它时,它只是这样说:

/usr/bin/ld: cannot find -lsfml-graphics: No such file or directory /usr/bin/ld: cannot find -lsfml-window: No such file or directory /usr/bin/ld: cannot find -lsfml-system: No such file or directory collect2: error: ld returned 1 exit status 

我试图找到 lsfml 文件在哪里,我在 /lib64 找到了它 注意:我使用的是 Fedora Linux Workspace 版本 39

因此,请任何能够找到如何成功编译代码的解决方案的人都将发送解决方案。 谢谢!

c++ sfml ld fedora
1个回答
0
投票

我从未使用过

fedora,
,但运行了
fedora:latest
的 Docker 镜像,我在裸露的新 Fedora 安装上执行了以下步骤,它编译和链接得很好。

启动 Fedora 的 Docker 镜像:

docker run -it -v "$(pwd)":/work fedora:latest

软呢帽容器内:

sudo dnf install g++ pkg-config SFML-devel
g++ main.cpp $(pkg-config --libs --cflags sfml-all) -o program 
© www.soinside.com 2019 - 2024. All rights reserved.