2009-08-06 16 views

Trả lời

40

pp có thể tạo tệp thực thi bao gồm perl và tập lệnh (và bất kỳ phụ thuộc mô-đun nào), nhưng nó sẽ cụ thể cho kiến ​​trúc của bạn, vì vậy bạn không thể chạy nó trên cả Windows và Linux chẳng hạn.

Từ tài liệu của nó:

Để thực hiện một thực thi độc lập, thích hợp để chạy trên một máy tính mà không có cài đặt perl:

% pp -o packed.exe source.pl  # makes packed.exe 
    # Now, deploy 'packed.exe' to target machine... 
    $ packed.exe      # run it 

(% và $ có là lệnh nhắc trên các máy khác nhau).

+0

hi u có thể giải thích cho tôi một cách ngắn gọn ... bởi vì là một newbie để perl .... dù tôi cần phải thêm mã này vào mã nguồn perl của tôi hay tôi phải thực hiện nó trong lệnh promt .... tôi đã sử dụng các mô-đun như sử dụng Win32 :: OLE; sử dụng Win32 :: OLE :: Enum; sử dụng Bảng tính :: BasicRead; làm thế nào tôi có thể làm cho .pl của tôi chạy trong mọi hệ thống .. Windows (tốt hơn) – User1611

+0

@lokesh, tôi nghĩ bạn sẽ phải đóng gói tập lệnh + mô-đun với trình biên dịch perl biên dịch sẵn ** cho mỗi hệ thống ** và đặt chúng trong một tệp zip. – Inshallah

+0

@Inshalla: cho mỗi hệ điều hành khác nhau, không phải mỗi máy tính khác nhau – ysth

7

Nhìn vào PAR (Bộ công cụ lưu trữ Perl).

PAR là một bao bì Cross-Platform và công cụ triển khai, mệnh danh là một chéo giữa Java JARPerl2EXE/PerlApp.

+0

Cụ thể, OP cần 'pp': http://search.cpan.org/perldoc/pp –

+0

sử dụng PAR; % pp -o packed.exe try.pl # làm cho packed.exe $ packed.exe # chạy nó hi đây là mã của tôi và tôi đã cài đặt PAR nhưng mặc dù nó ném "không thể xác định vị trí PAR.pm @INC. .. "bạn có thể cho tôi biết nơi tôi đã đi sai? u có thể tel cho tôi từ cơ bản xin vui lòng .. tôi chưa bao giờ cố gắng trước .. tôi có một tập tin .pl và sau đó làm thế nào tôi có thể sử dụng cải cách hành chính để thay đổi vào. exe u có thể cho tôi biết với một ví dụ – User1611

1

Tệp Perl là tập lệnh, không phải chương trình thực thi. Do đó, để họ 'chạy', họ sẽ cần một thông dịch viên.

Vì vậy, bạn có hai lựa chọn: 1) Có thông dịch viên trên máy mà bạn muốn chạy tập lệnh hoặc 2) Có tập lệnh chạy trên máy được kết nối mạng (hoặc Internet) mà bạn kết nối từ xa với (tức là với trình duyệt)

+2

nhưng, hai câu trả lời trước khi bạn đã chứng minh rằng nhận xét của bạn không hợp lệ. – KevinDTimm

+2

Không, họ đã không. PAR chỉ lưu trữ một nhị phân nền tảng perl cụ thể trong kịch bản bạn đang phân phối. – friedo

+0

@kevindtimm: David Lewis không sai trong những gì anh ta nói. Trang sẽ chỉ gói trình thông dịch perl cùng với tập lệnh. Vì vậy, nó sẽ tương đương với số lựa chọn 1. – Inshallah

6

Và đừng quên ActiveState's PDK. Nó sẽ cho phép bạn biên dịch giao diện người dùng, dòng lệnh, dịch vụ Windows và trình cài đặt.

Tôi rất khuyên bạn nên nó, nó đã phục vụ tôi rất tốt trong những năm qua, nhưng nó là khoảng 300 $ cho một giấy phép.

3

Cava Packager rất tuyệt vời trên hệ sinh thái Windows.

24
  1. Cài đặt PAR::Packer. Ví dụ cho * nix:

    sudo cpan -i PAR::Packer

    Đối với Strawberry Perl cho Windows hoặc cho ActivePerl và MSVC cài đặt:

    cpan -i PAR::Packer
  2. Gói nó với pp. Nó sẽ tạo một tệp thực thi có tên "example" hoặc "example.exe" trên Windows.

    pp -o example example.pl

này sẽ chỉ hoạt động trên hệ điều hành mà nó được xây dựng.

P.S. Thật khó để tìm một bản sao Unix mà không có Perl. Ý bạn là Windows?

+3

cải cách hành chính không phải là một giải pháp hoàn chỉnh nếu mã bạn muốn gói cần phải được biên dịch chéo. –

+2

Ngoài ra, bạn không cần chuyển đổi -i sang cpan. Chỉ cần cung cấp cho nó một danh sách các mô-đun và nó con số đó một phần cho bạn. :) –

7

Từ câu trả lời perlfaq3 's để How can I compile my Perl program into byte code or C?:


(đóng góp bởi brian d Foy)

Nói chung, bạn không thể làm điều này. Có một số điều có thể làm việc cho tình hình của bạn mặc dù. Mọi người thường hỏi câu hỏi này bởi vì họ muốn phân phối tác phẩm của họ mà không cho đi mã nguồn, và hầu hết các giải pháp thương mại không gian đĩa để thuận tiện. Bạn có thể sẽ không thấy nhiều sự gia tăng tốc độ, vì hầu hết các giải pháp chỉ đơn giản là gói một trình thông dịch Perl trong sản phẩm cuối cùng (nhưng xem Làm thế nào tôi có thể làm cho chương trình Perl của tôi chạy nhanh hơn?).

Bộ công cụ lưu trữ Perl (http://par.perl.org/) là tương tự của Perl với JAR của Java. Nó có sẵn miễn phí và trên CPAN (http://search.cpan.org/dist/PAR/).

Ngoài ra còn có một số sản phẩm thương mại có thể phù hợp với bạn, mặc dù bạn phải mua giấy phép cho chúng.

Bộ công cụ Perl Dev (http://www.activestate.com/Products/Perl_Dev_Kit/) từ ActiveState có thể "Biến chương trình Perl của bạn thành các tệp thi hành sẵn sàng chạy cho HP-UX, Linux, Solaris và Windows."

Perl2Exe (http://www.indigostar.com/perl2exe.htm) là chương trình dòng lệnh để chuyển đổi tập lệnh perl thành tệp thi hành. Nó nhắm vào cả nền tảng Windows và Unix.

+2

Lưu ý rằng đây là câu trả lời trong năm 2009, nhưng Reini Urban có các cập nhật –

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