2012-02-09 163 views
5

所以我有這個SFML 1.6應用程序在Mac OS X Lion上運行良好。目前我擁有的方式是SFML框架位於/ Library/Frameworks中,並且運行良好,但要在其他機器上安裝則需要管理員權限。所以我想執行下列操作之一:SFML 1.6沒有管理員權限

  1. 能夠安裝在圖書館/用戶/ IDK的/庫/框架或類似

  2. 包庫和應用程序到一臺Mac磁盤映像並有從那裏引用庫

  3. 靜態鏈接庫

現在,因爲該程序正在使用W端內置ith makefile,我更喜歡解決方案是在終端而不是XCode,但如果絕對必要,那麼我想我可以以某種方式將項目導入XCode。

所以任何人都可以解釋(精確地)如何做到上述三者中最容易做到的一方?

順便說一句,我使用的LLVM GCC 4.2與XCode 4.1一起編譯。

編輯:

如何有人從靜態鏈接嘗試其他兩個,除了?

回答

3

我解決了它,所以...浪費獎金點的種類...爲您的SUCKS! :P

我做了一件很簡單,很驚訝沒有人曾建議是:

我用install_name_tool改變SFML動態庫的名稱和依賴,使他們可以放在同一個目錄中可執行文件或特殊文件夾中,但這與可執行文件的目錄有關。所以它不需要管理員權限,我可以輕鬆將其全部打包到應用程序包中。

+1

Upvoted了很好的答案,但可恥的是你剝奪了賞金的人:) – Danra 2012-02-17 01:21:35

+0

!如果有人提供了一個好的工作解決方案,我總會給予獎勵。 :d – slartibartfast 2012-02-19 03:29:26

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.frameworkOpenGL.frameworkCoreFoundation.framework

另請注意,如果您要部署到OSX 10.4或更早版本,您應該靜態鏈接到libfreetype。隨OS提供的libfreetype在10.4和更早版本中位於不同位置,並且在動態鏈接時會導致問題。

+0

XCode現在似乎不喜歡SFML ......編譯時出現錯誤。有沒有其他方法可以做到這一點?因爲看起來SFML 1.6在Mac 10.7上有XCode的問題... – slartibartfast 2012-02-09 04:01:35

+0

@myrkos:什麼樣的問題?請更具體一些。 – Mankarse 2012-02-09 04:08:37

+0

好的。所以基本上,在「自定義外殼腳本」中說:「cp:3/build/xcode /../../include/SFML/:沒有這樣的文件或目錄」。這是錯誤。 – slartibartfast 2012-02-09 04:14:31

相關問題