2017-12-04 44 views
10

Tôi là một lập trình viên hobbyist đang cố gắng tích hợp SteamworksForPython API vào trò chơi dựa trên Python. API này là một trình bao bọc Python của Steamworks API, chỉ chính thức hỗ trợ C++. Tôi đang làm việc trên MacOS Sierra 10.12.6.Tạo tệp dylib trên MacOS để sử dụng với trình bao bọc Python của Steamworks API

mù quáng theo các tài liệu, tôi đã làm những điều sau đây:

  1. Tôi đã tải repo SteamworksForPython.
  2. Tôi đã thêm thư mục tiêu đề hơi nước từ SDK Steamworks (/ sdk/public/steam) vào repo đó.
  3. Tôi đã thêm vào đó repo tệp Steam API phù hợp với hệ điều hành của tôi (trong trường hợp của tôi, libsteam_api.dylib từ/sdk/redistributable_bin/osx32).

Bước tiếp theo được liệt kê trong tài liệu là tạo tệp dylib mới. Thật không may, các bước để làm điều này chưa được mô tả cho MacOS.

Nhìn vào quá trình cho Linux và Windows, có vẻ như tôi cần tạo tệp thư viện động này bằng tệp SteamworksPy.cpp của repo và tệp tiêu đề steam_api.h từ SDK Steamworks.

Tôi đã nghiên cứu cách tạo tệp dylib bằng Xcode và hiện đang cố gắng thực hiện. Quá trình này có vẻ tương tự như quy trình được mô tả bởi documentation dành cho Windows bằng Visual Studio.

Tôi đã làm như sau:

  1. Tôi đã tạo ra một dự án Xcode mới của loại đồng bằng C++ thư viện năng động.
  2. Tôi đã thêm SteamworksPy.cpp vào Danh sách các nguồn biên dịch.
  3. Tôi đã thêm steam_api.h vào danh sách Tiêu đề (dưới công khai, không riêng tư hoặc dự án).
  4. Tôi đã thêm libsteam_api.dylib vào phần Liên kết nhị phân với thư viện.

Tôi gặp lỗi khi cố xây dựng, tuy nhiên. Đây là một ảnh chụp màn hình:

enter image description here

Và đây là một ảnh chụp màn hình rõ ràng hơn trong những mối liên kết lỗi:

enter image description here

Sau khi đọc this, this, và this, tôi nghĩ rằng vấn đề là Xcode không biết nơi tìm thư viện mà tôi đang cố gắng liên kết, vì vậy tôi cần phải nói nó ở đâu để xem. Điều này phải đơn giản, nhưng tôi không thể quản lý để làm điều đó.

Có ai có thể cho tôi lời khuyên về cách tiến hành không?


câu hỏi tương tự mà là hữu ích, nhưng không đưa tôi đến với một giải pháp:

Trả lời

3

Tôi đã giải quyết được vấn đề này.

Xcode không thể tìm thấy vị trí của thư viện mà tôi đang cố gắng liên kết.

Tôi nhận thấy rằng dưới Thiết lập bản dựng Tôi có thể chỉ định Đường dẫn đến liên kết tệp bản đồ. Tôi đã cố gắng để hardcode đường dẫn đến nơi thư viện của tôi (libsteam_api.dylib) cư trú, nhưng tôi có cùng một lỗi được mô tả ở trên.

Sau đó, tôi đã làm điều gì đó hiệu quả.

Tôi đã xóa tham chiếu đến thư viện trong phần Liên kết nhị phân với thư viện.

Sau đó, tôi đã chuyển thư viện từ vị trí ban đầu của nó vào thư mục dự án Xcode của tôi.

Sau đó, tôi đã sử dụng ngăn chọn tệp trong phần Liên kết nhị phân với thư viện để chọn lại thư viện từ thư mục Xcode.

Khi tôi xây dựng, mọi thứ hoạt động tốt.

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