C++ SFML 1.6,无管理权限

C++ SFML 1.6,无管理权限,c++,macos,gcc,sfml,C++,Macos,Gcc,Sfml,因此,我有一个SFML1.6应用程序,它在Mac OS X Lion上运行良好。目前我使用的方式是,SFML框架位于/Library/frameworks中,并且工作良好,但是要在其他机器上安装它需要管理员权限。所以我想做下面的一件事: 能够在/User/idk/Library/Frameworks或类似文件中安装库 将库和应用程序打包到Mac磁盘映像中,并让它从此处引用库 静态链接库 现在,由于程序是使用带有makefile的终端构建的,我更希望解决方案位于终端而不是XCode中,但是如果绝对

因此,我有一个SFML1.6应用程序,它在Mac OS X Lion上运行良好。目前我使用的方式是,SFML框架位于/Library/frameworks中,并且工作良好,但是要在其他机器上安装它需要管理员权限。所以我想做下面的一件事:

  • 能够在/User/idk/Library/Frameworks或类似文件中安装库

  • 将库和应用程序打包到Mac磁盘映像中,并让它从此处引用库

  • 静态链接库

  • 现在,由于程序是使用带有makefile的终端构建的,我更希望解决方案位于终端而不是XCode中,但是如果绝对必要的话,我想我可以以某种方式将项目导入XCode

    那么,有谁能(准确地)解释一下如何做到上述三点中的任何一点,哪一点最容易做到

    顺便说一下,我正在使用XCode 4.1附带的LLVM GCC 4.2进行编译

    编辑:


    除了静态链接之外,还有人尝试另外两个怎么样?

    您可能应该静态链接到SFML。为此,必须将SFML编译为静态库。最简单的方法可能是修改SFML附带的Xcode项目(
    “带英特尔64位.xcodeproj的SFML”
    )。您需要将库的
    Mach-O
    类型更改为
    静态库

    我已经上传了我使用的带有英特尔64位.xcodeproj的修改版的
    SFML,你可以得到它。(此项目需要GCC4.2,因此仅适用于Xcode 3)

    静态链接到SFML与动态链接到SFML非常相似,请记住您还需要链接到
    Cocoa.framework
    OpenGL.framework
    ,以及
    CoreFoundation.framework


    还请注意,如果要部署到OSX 10.4或更早版本,则应静态链接到
    libfreetype
    。OS附带的
    libfreetype
    在10.4和更早版本中处于不同的位置,这会在动态链接时引起问题。

    我解决了问题,因此。。。有点浪费赏金积分。。。你真糟糕P

    我做了一件很简单的事,很惊讶没有人提出:


    我使用install_name_工具更改SFML动态库的名称和依赖项,以便它们可以与可执行文件放在同一个目录中,或者放在一个特殊的文件夹中,但这是相对于可执行文件的目录的。因此,它不需要管理员权限,我可以轻松地将其打包到一个应用程序包中。

    XCode现在似乎不喜欢SFML。。。它在编译时会出错。还有别的办法吗?因为似乎SFML1.6在Mac10.7上与XCode有问题…@myrkos:什么样的问题?请说得具体一点,好的。因此,基本上,在“定制Shell脚本”中,它说“cp:3/build/xcode/../../../include/SFML/:没有这样的文件或目录”。这就是错误。@myrkos:当你遇到这个错误时,你想做什么?这是哪一个“自定义Shell脚本”,它的内容是什么。我正在尝试编译sfml图形,但这只是第一个。“PhaseScriptExecution”运行脚本“使用英特尔64位的build/SFML.build/Debug/SFML.build/Script-A0BA42130DDF0E3F00039094.sh”即其名称。。。据推测对不起,我找不到任何其他方法来简化这个问题。这是一个发生在实际编译之前的脚本。投票赞成这个好答案,但你为剥夺人民的赏金而感到羞耻!:)如果有人给出了一个好的、有效的解决方案,我会一直给予赏金D