C++ SFML 1.6,无管理权限
因此,我有一个SFML1.6应用程序,它在Mac OS X Lion上运行良好。目前我使用的方式是,SFML框架位于/Library/frameworks中,并且工作良好,但是要在其他机器上安装它需要管理员权限。所以我想做下面的一件事: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中,但是如果绝对
除了静态链接之外,还有人尝试另外两个怎么样?您可能应该静态链接到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