I\'m trying to compile a project that uses sfml
I installed sfml 2.1
through homebrew
like below
unknown542696d2a12b:keepe
SFML was built to use freetype and libsndfile frameworks from /Library/Frameworks
or from the Frameworks
folder in your application bundle.
You can find more technical details here and there.
It's really easy: follow 1:1 the official guide: SFML and Xcode (Mac OS X) (And yes, you can use SFML outside Xcode!)
First, take a good look at this issue. That would give you an overview of the problems with the current naïve formula.
Specifically to you current issue, you will need to use install_name_tool to fix your binaries.
Here is how you can do it for freetype. It's similar for libsndfile.
install_name_tool -change @executable_path/../Frameworks/freetype.framework/Versions/A/freetype /usr/local/lib/libfreetype.dylib /usr/local/Cellar/sfml/2.1/lib/libsfml-graphics.2.1.dylib
However, this means your app will look for freetype in /usr/local/lib
. Hence, you would have to install freetype there on your clients' computers too. This is not the case if you use the official installation procedure and use Xcode templates to create a SFML app.
SFML assumes you're building a .app
bundle. Notice it's complaining about not finding FreeType, which is a dependency of SFML (it's not complaining about finding SFML). And notice where it's looking for FreeType: @executable_path/../Frameworks/freetype.framework/Versions/A/freetype
.
If your program (keeper
) is in .
, then OS X is looking for FreeType in ./../Frameworks/freetype.framework/Versions/A/freetype
, and it's complaining that it can't find it. That because those SFML libraries think you've created a .app
bundle, which would then have the necessary/assumed folder structure.
Your options are:
.app
bundle that includes everything@executable_path/../Frameworks/freetype.framework/Versions/A/freetype
)