所以我有这个在Mac OS X Lion上运行良好的SFML 1.6应用程序。目前我的方式是SFML框架在/ Library / Frameworks中并且运行良好,但是要在其他机器上安装它需要管理员权限。所以我想做以下其中一项:
能够在/ User / idk / Library / Frameworks或类似的
将库和应用程序打包到Mac磁盘映像中并让它从那里引用库
静态链接库
既然程序是使用带有makefile的终端构建的,我希望解决方案是在终端而不是XCode,但如果绝对必要,那么我想我可以以某种方式将项目导入XCode。
所以任何人都可以解释(精确地)如何做到上述三个中的任何一个,哪个最容易做?
顺便说一句,我正在使用随XCode 4.1一起提供的LLVM GCC 4.2进行编译。
编辑:
除了静态链接之外,有人会尝试另外两个吗?
答案 0 :(得分:3)
我解决了所以......浪费赏金点......为你而烦恼! :P
我做了一件非常简单的事情,并且没有其他人建议过这件事感到惊讶:
我使用install_name_tool来更改SFML动态库的名称和依赖关系,以便它们可以放在与可执行文件相同的目录中,或放在特殊文件夹中,但这是相对于可执行文件的目录。所以它不需要管理员权限,我很容易将它全部打包到应用程序包中。
答案 1 :(得分:2)
您应该静态链接到SFML。为此,您必须将SFML编译为静态库。最简单的方法是修改SFML附带的Xcode项目("SFML with Intel 64 bits.xcodeproj"
)。您需要将库的Mach-O
类型更改为Static Library
。
我上传了我使用的SFML with Intel 64 bits.xcodeproj
修改版本,您可以获取here。 (该项目需要GCC4.2,因此仅适用于Xcode 3)。
静态链接到SFML非常类似于动态链接到它,只需记住您还需要链接到Cocoa.framework
,OpenGL.framework
和CoreFoundation.framework
。
另请注意,如果要部署到OSX 10.4或更早版本,则应静态链接到libfreetype
。操作系统随附的libfreetype
位于10.4及更早版本的不同位置,这会在动态链接时导致问题。