2010-08-29 42 views
7

Tôi đã hoàn thành một phiên bản số đơn giản của trò chơi "Towers of Hanoi" bằng cách sử dụng công cụ dòng lệnh của xcode trong C++. Được quen với các trình biên dịch PC như borland và visual-c, tôi đã cố gắng "chia sẻ" trò chơi với những người khác qua e-mail bằng cách đơn giản gắn sản phẩm thực thi được xây dựng bởi xcode. Tuy nhiên, người nhận không thể chạy chương trình vì nó hiển thị ở định dạng khác - thường là mã máy, có vẻ như vậy.Sản phẩm thực thi của xcode cho dự án C++

Sau một chút tìm kiếm mở rộng, tôi nhận ra sự phức tạp của dự án xây dựng trong IDE xcode và các biến thể trên việc xây dựng các thiết lập/mục tiêu vv

Bất cứ ai cũng biết làm thế nào để xây dựng một khép kín C++ thực thi để được phổ hoạt động? Tôi không đi ra ngoài thư viện STL cho trò chơi này. Tôi rất cảm kích sự giúp đỡ.

nhờ

+1

Điều đó nghe không giống với vấn đề xcode - có vẻ như người gửi email đang làm rối tung mọi thứ - bạn và khách hàng của bạn đang sử dụng chương trình email nào? – Mark

+0

Tôi đang gửi email qua Yahoo nhưng tôi nghi ngờ nếu đó là nguyên nhân khi tôi gửi các tệp .exe từ PC qua hệ thống của họ ... – NBG

Trả lời

0

ứng dụng chia sẻ trên các phiên bản chấm của cùng một hệ điều hành có thể rất khó khăn trên Mac (ít nhất, như xa như kinh nghiệm cá nhân đi).

Để có thể chia sẻ ứng dụng của bạn với số tiền ít nhất của nỗ lực, bạn sẽ cần phải tìm ra:

  • dự án gì loại này là? Bạn đang sử dụng bất kỳ tài nguyên nào như hình ảnh, v.v ...?
  • Phiên bản hệ điều hành mà bạn bè của bạn đang sử dụng? Nếu họ không có trên máy Mac, bạn không may mắn (hoặc bạn sẽ phải biên dịch lại cho hệ điều hành của họ).
  • Nếu họ chạy Mac, hãy kiểm tra xem bạn có các phiên bản hệ điều hành giống nhau không, nếu bạn đã phát triển trên Leopard và ai đó đang chạy trên SnowLeopard, ứng dụng của bạn có thể bị lỗi. (Tôi cũng gặp phải sự cố giữa Mac OS 10.5.4 và 10.5.3 để giữ cho các ngón tay của bạn bị vượt qua.)
  • Kiểm tra loại phần cứng nào bạn đang chạy. Bạn đang xây dựng cho phần cứng của bạn (nói, MacIntel) chỉ hoặc là bạn tạo một Universal nhị phân?
  • Đảm bảo rằng tất cả các tài nguyên được đóng gói vào gói ứng dụng của bạn. Đảm bảo ứng dụng của bạn chỉ sử dụng các đường dẫn tương đối.
  • Kiểm tra xem bạn có đang viết thư cho các thư mục đặc biệt hay không (tức là chỉ sử dụng temp và/hoặc vị trí có thể ghi từ, nếu bạn cần).

Tôi ước tôi có thể trả lời chi tiết hơn/trả lời nhưng tiếc là bạn sẽ tự mình tìm ra một số câu trả lời (không có bất kỳ thông tin cụ thể nào về lỗi bạn đang gặp phải).

+0

Tôi đang sử dụng thuật ngữ xcode "công cụ dòng lệnh", xây dựng C++ đặc biệt. Không có hình ảnh, âm thanh, v.v. Tôi đang sử dụng hệ điều hành Leopard và không mong gặp sự cố khi cố gắng xây dựng một chương trình điều khiển phổ biến. Và vâng, tôi đã thử xây dựng một hệ nhị phân chung. Hy vọng điều này sẽ cung cấp đủ ngữ cảnh. Cảm ơn sự giúp đỡ- đây là công cụ hữu ích. – NBG

5

OS X dựa trên Unix, sử dụng các tệp nhị phân thuần túy (ví dụ: không có đuôi tệp) làm tệp thi hành. Nếu họ có một "quyền thực thi" nhất định, chúng có thể được nhấp đúp để chạy dưới dạng tệp thực thi hoặc chạy từ dòng lệnh. Tuy nhiên, quyền này không thể được gửi qua email - đó là siêu dữ liệu trong chính hệ thống tệp và điều này có ý nghĩa từ quan điểm bảo mật (bạn sẽ không muốn người gửi spam gửi cho bạn vi-rút thực thi qua email phải không?). Vì vậy, khi người nhận nhận được nhị phân, họ sẽ cần phải chạy lệnh dòng lệnh sau vào nó, giả sử "hanoi" là tên của tập tin nhị phân:

chmod +x /path/to/hanoi 

Nếu bạn thực sự muốn đóng gói nó như một ngay lập tức nhấn đúp ứng dụng, bạn sẽ cần phải cung cấp cho nó một giao diện người dùng bản địa và gói nó như là một .app, sau đó đặt đó .app (mà thực sự là một thư mục với phần mở rộng .app) trong một kho lưu trữ để phân phối. Xin lỗi nếu đó là công việc nhiều hơn bạn đã hy vọng. Hi vọng điêu nay co ich!

+0

Không, không, điều đó rất hữu ích. Mặc dù, tôi nghĩ rằng câu hỏi của tôi là phrased không đúng; hoặc ít nhất nó không đầy đủ. Có lẽ tôi nên hỏi nó theo cách này: Bạn có biết liệu tôi có thể biên dịch một văn bản đơn giản (không có đồ họa, âm thanh, vv) trò chơi C++ để tương thích với nhiều nền tảng hay không; cụ thể, bạn có biết làm thế nào/nếu xcode có thể biên dịch và xây dựng một sản phẩm để chạy bất cứ nơi nào có một giao diện điều khiển? Tôi nhận thấy câu hỏi của mình có thể không được thông báo. Cảm ơn bạn rất nhiều vì đã trả lời nhiều thông tin. – NBG

+0

Nếu bởi nền tảng chéo bạn có nghĩa là trên cả Mac và Windows, thì không - Xcode không có trình biên dịch cho các tệp thi hành không phải Mac. Nhưng chắc chắn có thể biên dịch chéo cho các phiên bản khác nhau của Mac OS X. –

+1

Nếu bạn thực sự cần để có thể xây dựng cho Mac, Windows và Linux từ Xcode, thì Xcode có "các bước xây dựng tùy chỉnh" có thể chạy bất kỳ kịch bản dòng lệnh. Sau đó bạn có thể sử dụng một chuỗi công cụ biên dịch chéo chạy từ một dòng lệnh. Xem, ví dụ, http://lilypond.org/gub/ (mặc dù đó là chắc chắn overkill và thậm chí không thể làm việc trên máy Mac, nó chỉ để cho thấy rằng nó có thể). Lời khuyên của tôi? Tìm một máy Windows và/hoặc Linux, sao chép các tệp C++ của bạn qua và biên dịch riêng cho Windows/Linux. Bạn có thể kiểm tra mã của bạn trong Xcode mặc dù. Chúc may mắn! – btown

0

Nếu bạn hài lòng với công cụ dòng lệnh thay vì ứng dụng có thể nhấp đúp, nó đủ để nén nó và đính kèm vào e-mail. Hãy chắc chắn để xây dựng phổ quát nếu bất cứ ai bạn đang gửi đến có thể đang sử dụng Mac dựa trên PowerPC. Ồ, và đặt mục tiêu triển khai thành hệ điều hành tối thiểu mà bất kỳ người nhận nào có thể đang sử dụng.

+0

Đã thử rằng, ban đầu. Gửi thông qua Yahoo, nó tạo ra một "tập tin văn bản" mọi lúc. Tôi đã thử đổi tên, xây dựng thay thế (triển khai, phát hành), không có kết quả. Có, tôi vừa mới viết phiên bản công cụ dòng lệnh. Không có đồ họa, âm thanh, vv; chỉ có mã bao gồm tiêu đề chuẩn. Cảm ơn phản hồi kịp thời của bạn. Thực sự đánh giá cao sự giúp đỡ, ở đây. – NBG

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