2012-02-09 31 views
5

Vì vậy, tôi có ứng dụng SFML 1.6 hoạt động tốt trên Mac OS X Lion. Hiện tại cách tôi có nó là các khung công tác SFML nằm trong/Library/Frameworks và nó hoạt động tốt, tuy nhiên để cài đặt trên các máy khác, nó yêu cầu đặc quyền quản trị viên. Vì vậy, tôi muốn làm một trong các cách sau:SFML 1.6 không có quyền quản trị

  1. Có thể cài đặt các thư viện trong/User/idk/Library/Frameworks hoặc tương tự

  2. trọn gói các thư viện và ứng dụng thành một hình ảnh đĩa Mac và có nó tham khảo các thư viện từ đó

  3. tĩnh liên kết các thư viện

Bây giờ kể từ khi chương trình được xây dựng bằng cách sử dụng đầu cuối w ith makefiles, tôi muốn các giải pháp để được trong Terminal hơn là XCode, nhưng nếu hoàn toàn cần thiết sau đó tôi đoán tôi bằng cách nào đó có thể nhập khẩu các dự án để XCode.

Vì vậy, bất kỳ ai cũng có thể giải thích (chính xác) cách thực hiện bất kỳ điều nào trong ba điều trên, tùy theo điều nào dễ nhất?

Bằng cách tôi đang sử dụng LLVM GCC 4.2 đi kèm với XCode 4.1 để biên dịch.

EDIT:

Làm thế nào về một người nào đó cố gắng hai người kia, ngoài liên kết tĩnh?

Trả lời

3

Tôi đã giải quyết nó để ... loại lãng phí điểm thưởng ... SUCKS CHO BẠN! : P

tôi đã làm một cái gì đó khá đơn giản và rất ngạc nhiên không ai khác đã gợi ý nó:

tôi đã sử dụng install_name_tool để thay đổi tên và phụ thuộc của các thư viện động SFML để họ có thể được đặt trong cùng thư mục với thực thi, hoặc trong một thư mục đặc biệt, nhưng nó liên quan đến thư mục thực thi. Vì vậy, nó không yêu cầu đặc quyền quản trị, và tôi dễ dàng đóng gói nó vào một gói ứng dụng.

+1

Được bình chọn cho câu trả lời hay, nhưng xấu hổ về bạn vì tước đoạt tiền thưởng của họ! :) – Danra

+0

Tôi sẽ luôn cung cấp tiền thưởng nếu ai đó đưa ra một giải pháp tốt và làm việc. : D – slartibartfast

2

Có thể bạn nên liên kết tĩnh với SFML. Để làm điều này, bạn sẽ phải biên dịch SFML như một thư viện tĩnh. Cách dễ nhất để làm điều này có lẽ là sửa đổi dự án Xcode đi kèm với SFML ("SFML with Intel 64 bits.xcodeproj"). Bạn cần thay đổi loại thư viện Mach-O thành Static Library.

Tôi đã tải lên phiên bản đã sửa đổi của SFML with Intel 64 bits.xcodeproj mà tôi sử dụng, bạn có thể lấy nó here. (Dự án này yêu cầu GCC4.2, và do đó chỉ hoạt động với Xcode 3).

Kết nối tĩnh với SFML rất giống với liên kết động với nó, chỉ cần nhớ rằng bạn cũng cần liên kết đến Cocoa.framework, OpenGL.frameworkCoreFoundation.framework.

Cũng lưu ý rằng nếu bạn muốn triển khai OSX 10.4 hoặc cũ hơn, bạn nên liên kết tĩnh với libfreetype. Các libfreetype được cung cấp với hệ điều hành là ở một vị trí khác nhau trong 10.4 và trước đó, và điều này gây ra vấn đề khi nó được liên kết động.

+0

XCode dường như không thích SFML bây giờ ... lỗi khi biên dịch. Có cách nào khác để làm điều này? Bởi vì có vẻ như SFML 1.6 có vấn đề với XCode trên máy Mac 10.7 ... – slartibartfast

+0

@myrkos: Loại vấn đề gì? Hãy cụ thể hơn. – Mankarse

+0

Được rồi. Vì vậy, về cơ bản, trong "Custom Shell Script" nó nói "cp: 3/build/xcode /../../ include/SFML /: Không có tập tin hoặc thư mục như vậy". Đó là lỗi. – slartibartfast

Các vấn đề liên quan