2009-11-24 29 views
9

Tôi đã tạo một dự án triển khai hoạt động khá tốt và bây giờ tôi muốn thêm nó vào kho kiểm soát nguồn để người khác sử dụng.
Vấn đề chính mà tôi đang đối mặt là tệp .prj mà tạo deploytool chứa đường dẫn tuyệt đối sẽ không hoạt động trên các máy tính khác. Cho đến nay tôi đã thử các cách sau:Triển khai Matlab: thêm tệp vào kiểm soát nguồn?

  • Tạo riêng biệt độc lập chỉ bằng mcc mà không cần deploytool. Điều này làm việc tuyệt vời nhưng tôi có thể tìm thấy một cách để tạo ra các _pkg.exe cuối cùng trong đó có tất cả mọi thứ. mcc dường như không thể tạo tệp này và dường như không có bất kỳ công cụ nào khác hoạt động. Đây đúng là tình trạng đó phải không?
  • Chỉnh sửa tệp .prj để bao gồm đường dẫn tương đối thay vì đường dẫn tuyệt đối. Điều này chỉ hoạt động một phần vì tệp .prj chứa một phần được gọi là MATLABPath, luôn được thay thế bằng setpath hiện tại của MATLAB. bất cứ ai sử dụng tập tin này sẽ phải kiểm tra nó ra vì nó đang được thay đổi khi sử dụng.
  • Tìm cách tạo tệp .prj. tài liệu mcc nói: Project files created using either mcc or deploytool are eligible to use this option. gợi ý rằng có một cách để tạo tệp .prj bằng cách sử dụng mcc nhưng tôi không thể tìm thấy cách thực hiện điều này.

Có giải pháp cho tình huống này không?

+2

Bạn nên đặt trong một yêu cầu tăng cường với MathWorks cho việc này. –

Trả lời

-2

Đây là mcc option documentation.

Những gì tôi đã tìm thấy hữu ích nhất là tạo ra một exe độc ​​lập sử dụng mcc:

mcc -C -m <function.m> -a <fig> -a <dll> -a <etc> -d <outputPath> 

Các lựa chọn -C nói mcc để tạo ra các tập tin ctf (đó là các kho lưu trữ của tất cả các công cụ MATLAB biên soạn) như một tệp riêng biệt. Tôi đã gặp sự cố trên một số máy tính mục tiêu sử dụng một exe đơn lẻ với mọi thứ được biên dịch.

Tùy chọn -m cho biết mcc để tạo một exe.

Tùy chọn -a cho biết mcc để bao gồm tệp được chỉ định trong gói. Ví dụ, nếu kịch bản của bạn sử dụng hai tập tin con số và một tập tin dữ liệu, bạn cần một -a cho mỗi tập lệnh để đảm bảo chúng được đưa vào gói đầu ra.


Để nói mcc sử dụng một tập tin dự án (Tôi chưa bao giờ làm bản thân mình này):

mcc -F <projectfile> 

Ngoài ra, nếu bạn đang sử dụng R2009a trên Windows, có một known bug that requires some manifest manipulation.

+1

Chà, có lẽ lần sau bạn có thể bận tâm để thực sự đọc chính câu hỏi thay vì chỉ là các thẻ. – shoosh

+0

@shoosh - Bạn nói đúng, tôi đã đọc lướt qua câu hỏi và trả lời điều tôi mong đợi để xem, chứ không phải những gì bạn đã hỏi. Xin lỗi vì điều đó. Tôi đã thực sự không bao giờ được sử dụng 'deploytool' theo cách bạn có, vì vậy tôi đã không nhận được những gì bạn có nghĩa là bởi _pkg.exe. Tôi nên làm một chút đọc trước khi nhảy vào với một câu trả lời. – mtrw

3

Chúng tôi chạy vào cùng một điều với Matlab Builder JA. Không chỉ là đường dẫn tuyệt đối, Matlab còn bổ sung thêm các hộp công cụ khác mà nó tìm thấy trên đường dẫn, điều này gây khó chịu, vì máy xây dựng không có giấy phép cho rất nhiều.

Vì vậy, những gì chúng ta làm là:

  • Chỉnh sửa file prj bằng tay để thoát khỏi các đường dẫn tuyệt đối
  • Kiểm tra nó vào kiểm soát nguồn và xây dựng với mcc
  • NEVER EVER kiểm tra trong prj tệp sau khi nó đã được xúc tiến bởi deploytool (thực hiện tất cả các thay đổi bằng tay trong một trình soạn thảo)

Kiểm soát sửa đổi của chúng tôi cho phép bạn sửa đổi tệp mà không cần thanh toán rõ ràng, do đó việc sử dụng deploytool không phải là vấn đề. Nhưng vì sao bạn lại muốn có nó?

Không chắc chắn những gì đóng gói cuối cùng, nhưng nếu nó chỉ bó MCR với nhị phân biên dịch, tôi sẽ chỉ viết một thay thế.

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