如何在Apple M1 Mac上使用SFML ?



我用这个视频https://www.youtube.com/watch?v=WOyp5n2FmZY为macOS-clang安装了SFML。我在这个视频中设置了Xcode https://www.youtube.com/watch?v=kusRtYC-wj4但它不像视频中那样工作。它可以在没有错误或警告的情况下构建,但是当我运行时,这就是发生的事情。只是想让你们知道

  1. 我是一个业余爱好者。
  2. 我用的是MacBook Pro M1 2020。
  3. 我以前从未使用过SFML。
  4. 我刚开始使用Xcode。我以前用过VSCode。
  5. 我已经安装了Rosetta2。在此之前,我已经尝试过在VSCode上使用这个样板(https://github.com/andrew-r-king/sfml-vscode-boilerplate.git)。
  6. 我也尝试过通过Homebrew安装的SFML。

我该怎么办?我真的需要这样做,因为我必须用它来制作我的大学游戏项目。提前感谢大家。

首先,在brew中安装SFML

brew install sfml

获取位置信息

brew info sfml

您将看到/opt/homebrew/Cellar/sfml/2.X。输出中的Y。它是头文件、库文件等的位置。

与编译

g++ main.cpp -I/opt/homebrew/Cellar/sfml/2.5.1_1/include -o app -L/opt/homebrew/Cellar/sfml/2.5.1_1/lib -lsfml-graphics -lsfml-window -lsfml-system

最后一步是:

./app

完成了!

#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(640, 480), "SFML Application");
sf::CircleShape shape;
shape.setRadius(40.f);
shape.setPosition(100.f, 100.f);
shape.setFillColor(sf::Color::Cyan);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
}

适用于M1 mac电脑

  1. 设置所有路径:

头搜索路径图书馆搜索路径

您可以添加home - brew安装路径。

  1. 注意你正在构建的MacOS版本。对于MacOS 11.0及以下版本,唯一的选择是使用rosetta…

  2. 如果你的mac有AppleSilicon,用brew安装sfml将为你生成arm64库。所以你需要在项目中更新MacOS版本,并在上面的栏中选择正确的测试平台,在Xcode中,你应该有MyProject>我的Mac (Rosetta)或MyProject>我的Mac,只要选择"我的Mac";如果您正在使用brew.

最新更新