Я пытаюсь запустить базовый проект C++ со ссылкой на библиотеку SFML. Я распаковал библиотеку SFML в папку / Users / mulperi / cpplib / sfml и я добавил это в Включить путь поиска и Путь поиска библиотеки.
Мой код простой, я следил за инструкцией на Youtube (также пробовал разные готовые коды):
#include <iostream>
#include <SFML/Graphics.hpp>
int main() {
sf::RenderWindow window(sf::VideoMode(640, 480), "First SML Window");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type) {
case sf::Event::Closed:
window.close();
break;
default:
break;
}
}
window.clear();
window.display();
}
return 0;
}
Сборка прошла успешно, поэтому пути должны быть в порядке. Я не получаю окно, вместо этого у меня есть следующие результаты:
Поток 1:
dyld`__abort_with_payload:
0x10003b1e0 <+0>: movl $0x2000209, %eax ; imm = 0x2000209
0x10003b1e5 <+5>: movq %rcx, %r10
0x10003b1e8 <+8>: syscall
-> 0x10003b1ea <+10>: jae 0x10003b1f4 ; <+20>
0x10003b1ec <+12>: movq %rax, %rdi
0x10003b1ef <+15>: jmp 0x10003aa48 ; cerror_nocancel
0x10003b1f4 <+20>: retq
0x10003b1f5 <+21>: nop
0x10003b1f6 <+22>: nop
0x10003b1f7 <+23>: nop
Выход:
dyld: Library not loaded: @rpath/libsfml-system.2.5.dylib
Referenced from: /Users/mulperi/Library/Developer/Xcode/DerivedData/sfml_1-cgodahbmxiufqnhhglbsyfuzvdvz/Build/Products/Debug/sfml_1
Reason: image not found
(lldb)
Я использую Xcode 9.3.1 на High Sierra 10.13.4
Обновлять: Я также попытался переместить папку SFML внутри папки проекта и даже попытался разделить include, libs, frameworks, extlibs tu / usr / local, как в учебнике по SFML, но всегда получаю тот же результат.





Хорошо, я заработал после того, как внимательно прочитал руководство по началу работы. На Mac они рекомендуют использовать файлы Framework, поэтому я сделал следующее:
Примечание. С помощью этого метода не нужно добавлять пути поиска для включения или пути поиска в библиотеке.
Здесь все еще не работает macOS 10.15.4, Xcode версии 11.4.1 (11E503a). Xcode жалуется на подпись файлов в фреймворке и останавливает процесс компиляции
На Catalina принятое решение, похоже, больше не работает из-за таких ошибок, как:
sfml-audio.framework cannot be opened because the developer cannot be verified
Использование homebrew решило это для меня:
brew install sfml. Затем в Xcode свяжите библиотеки, установленные homebre:Перейдя в раздел «Связывание двоичных файлов с библиотеками» в Xcode, перетащите библиотеки sfml из каталога /usr/local/Cellar/sfml/x.x.x/lib.
Нажмите "построить и запустить". Теперь проект должен быть собран и успешно запущен
Я сделал то же самое, но проблемы с исходным кодом еще не возникли.
Я попробовал выполнить следующие шаги в MacOS Catalina 10.15.4 (в 2020 году):
для использования SFML в Xcode попробуйте следующее:
-> 1. Установите зависимость sfml с помощью: $ brew install sfml
-> 2. Перейдите в проект Xcode и добавьте следующее: (Очень важно)
в "Пути поиска заголовков" добавьте "/usr/local/Cellar/sfml/2.5.1/include"
в "Библиотечный поиск" добавьте "/usr/local/Cellar/sfml/2.5.1/lib"
2.5.1 - это sfml версия, попробуйте с вашей текущей версией.
-> 3. Перейдите в раздел «Build Phases / Link Binary with Libraries» и добавьте все файлы «dylib»:
-> 4. Наконец, запустите свой проект.
Убедитесь, что все включения были правильно добавлены в начало файловой программы и пространство имен правильно размещено, например:
#include <SFML/Graphics.hpp>
#include <iostream>
using namespace sf;
Я проделал те же шаги, но возникла проблема с исходным кодом. Программа скомпилирована и скомпонована, но есть SIGABRT и вывод "dyld: Library not loaded: @ rpath / libsfml-system.2.5.dylib"
Именно то, что мне нужно. Спасибо!