2013-08-20 38 views
6

hi Tôi có một chương trình Lua (viết bằng Lua 5.1). Tôi đang sử dụng Windows 7, cố gắng chuyển đổi nó thành tệp thực thi. Không may mắn cho đến nay. Tôi đã đọc các bài viết khác ở đây mà đề nghị sử dụng srlua để làm điều này vì vậy tôi đã tải về nó nhưng tôi đang trên một mất mát như phải làm gì tiếp theo. Tôi đã cài đặt Cygwin như tôi hiểu nó là cần thiết nhưng tôi không biết làm thế nào để sử dụng srlua để chuyển đổi một tập tin lua thành một thực thi. Bất kỳ trợ giúp sẽ được đánh giá cao.Windows Lua để thực thi

+0

Bạn có thể dễ dàng tạo tệp exe độc ​​lập từ bó tệp lua.exe + lua.dll + script.lua + runme.bat của bạn bằng ThinApp. –

Trả lời

9

srlua chỉ được phân phối dưới dạng nguồn, vì vậy bạn phải biên dịch nó trước tiên (xem this answer để biết các đề xuất về cách nhận trình biên dịch C miễn phí).

BTW, Cygwin là không cần thiết chút nào. Liên kết nói trên sẽ dẫn bạn đến các hướng dẫn cài đặt TDM-GCC, một cổng Windows của trình biên dịch GCC sẽ tạo các tệp thực thi chỉ phụ thuộc vào các thư viện hệ thống mặc định của Windows.

Khi bạn đã có trình biên dịch C tại chỗ và bạn đã biên dịch srlua, bạn sẽ có hai tệp thi hành glue.exesrlua.exe. Sau này chỉ là một sơ khai, được sử dụng bởi srlua.exe để tạo ra tệp thực thi cuối cùng bằng cách nối nó với kịch bản lệnh Lua của bạn.

Giả sử kịch bản của bạn là myscript.lua và bạn muốn tạo một file thực thi có tên myexe.exe bạn phải gọi glue.exe từ dòng lệnh như sau:

glue.exe srlua.exe myscript.lua myexe.exe 

Tôi cho rằng tất cả các file liên quan được đặt trong cùng một thư mục và bạn đã thay đổi thư mục đó từ dòng lệnh.

Phụ lục: Tôi vừa kiểm tra lại trang tải xuống chính thức cho srlua và tôi thấy đó cũng là gói có các tệp nhị phân đã biên dịch cho Windows. Vì vậy, bạn có thể bỏ qua tất cả việc biên dịch từ phần nguồn và chỉ cần tải xuống và giải nén this.

Các tệp nhị phân nằm trong thư mục con Release bên trong lưu trữ. Lưu ý rằng đây là cho Lua 5.1 chỉ, vì vậy nếu kịch bản của bạn sử dụng các tính năng của Lua 5.2 bạn phải làm theo lời khuyên ban đầu của tôi và biên dịch từ nguồn.

+0

Cảm ơn nó đã làm việc tuyệt vời. Những gì tôi không hiểu mặc dù là điều này: Tôi đã có một số chức năng trong tập tin lua của tôi vì vậy làm thế nào để tôi xác định cái nào nên được thực hiện? Trong java hoặc C chúng ta có một hàm chính và thực hiện nhưng những gì về file lua chỉ chứa các hàm? – maxam

+2

Tập lệnh được thực thi từ dòng đầu tiên. Về mặt kỹ thuật, bản thân kịch bản là phần thân của hàm Lua, và hàm đó là những gì được thực thi bởi trình thông dịch khi bạn chạy tập lệnh. Trong các ngôn ngữ khác, bạn có thể gọi nó là một hàm "vô danh", nhưng trong Lua nó sẽ là thuật ngữ gây hiểu lầm bởi vì các hàm về mặt kỹ thuật không có tên (chỉ có các biến), vì chúng là các giá trị (hạng nhất). Những gì bạn thấy là tên hàm thực sự là biến (địa phương, hình cầu hoặc trường bảng) có chức năng như giá trị. BTW lưu ý rằng trong Lua bạn có thể định nghĩa các hàm mới bên trong các hàm khác. –

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