【问题标题】:Having trouble getting SFML to work with C++ in Geany on MacOS在 MacOS 上的 Geany 中让 SFML 与 C++ 一起工作时遇到问题
【发布时间】:2020-02-29 02:45:37
【问题描述】:

我想使用 C++ 进行游戏开发,所以我决定尝试 SFML。但是,即使将所有文件放在正确的位置后,它也找不到需要的文件。

我按照页面 https://www.sfml-dev.org/tutorials/2.5/start-osx.php 上的所有步骤操作,确保将所有框架和 dylib 放在正确的文件夹中,但它仍然不允许我使用 SFML 文件

#include <iostream>
#include <SFML/Graphics.hpp>

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

程序应该做的是显示一个可以关闭的黑色窗口,但它给了我错误消息

g++ -Wall -o "helloWorld" "helloWorld.cpp" (in directory /Users/Splavacado100/Desktop/Coding/C++)
helloWorld.cpp:2:10 fatal error: 'SFML/Graphics.hpp' file not found
#include <SFML/Graphics.hpp>

【问题讨论】:

    标签: c++ macos sfml geany


    【解决方案1】:

    SFML(据我所知,标准模板库之外的任何其他库)要求编译器知道 lib 和 include 文件夹的存储位置。在此错误实例中,您使用的 IDE 似乎没有找到文件夹的正确路径。它没有在 MacOS 版本中列出,因为您喜欢的教程假设您使用的是 XCode,它类似于 Visual Studio for Mac。

    据我所知,如果您是在纯文本编辑器中编写程序,并使用 makefile 或命令行提示符进行编译,请查看SFML and Linux article 以更完整地了解如何使用它。与此场景相关的:

    如果您将 SFML 安装到非标准路径,您需要告诉编译器在哪里可以找到 SFML 头文件(.hpp 文件):

    g++ -c main.cpp -I&lt;sfml-install-path&gt;/include Here, 是您复制 SFML 的目录,对于 例如 /home/me/sfml。

    您必须将编译后的文件链接到 SFML 库,以便 得到最终的可执行文件。 SFML 由 5 个模块(系统、窗口、 图形、网络和音频),并且每个都有一个库 他们。要链接 SFML 库,您必须将“-lsfml-xxx”添加到您的 命令行,例如图形模块的“-lsfml-graphics” (库文件名的“lib”前缀和“.so”扩展名 必须省略)。

    g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system如果 您将 SFML 安装到非标准路径,您需要告诉 链接器在哪里可以找到 SFML 库(.so 文件):

    g++ main.o -o sfml-app -L&lt;sfml-install-path&gt;/lib -lsfml-graphics -\lsfml-window -lsfml-system我们现在可以执行编译好的程序了:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 2012-01-22
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多