2009-12-03 42 views
13

Có ai từng quản lý để biên dịch tại Delphi 6 & 7 (KHÔNG phải bất kỳ Delphi> 7) nào bằng cách sử dụng dòng lệnh không?Làm cách nào để biên dịch dự án delphi của tôi trên dòng lệnh?

Tất cả các hướng dẫn tôi thấy không rõ ràng về những gì chính xác cần đến nơi!

Đang tìm hướng dẫn từng bước.

Câu trả lời phải giới hạn ở Delphi 6 & 7, tôi hiểu Delphi2006 và> sử dụng MSBuild dễ hơn nhiều.

Liên kết cũng được đánh giá cao.

Gath

Trả lời

4

FinalBuilder làm cho nó rất dễ dàng. Hãy thử một lần.

14

Điều này không khó thực hiện. Tôi có một Delphi 5 cài đặt tiêu chuẩn trên máy tính của tôi ở đây, và khi tôi mở một dấu nhắc lệnh, điều hướng đến thư mục $(DELPHI)\Demos\Threads và nhập dcc32.exe thrddemo.dpr ứng dụng được xây dựng trên dòng lệnh.

Đối với dự án của riêng bạn, bạn có thể cần thêm một số công tắc để bao gồm thư mục tệp, thư mục đầu ra, xác định hoặc những thứ tương tự. Chạy dcc32.exe mà không có tham số cung cấp danh sách các công tắc và thông số. Nó cũng được mô tả trong tài liệu hướng dẫn.

Để lặp lại, bạn nên tạo một tệp lô hoặc một tệp Makefile thông thường.

Lưu ý rằng cả tệp dự án cfg và phổ biến dcc32.cfg trong thư mục Delphi chứa các cài đặt quan trọng. Để biết một số thông tin về cách chúng ảnh hưởng đến bản dựng, hãy xem ví dụ this link on Delphi Wikia.

+3

Nói về wiki Delphi: Cũng có một trang về chính xác chủ đề này: http://delphi.wikia.com/wiki/Compile_from_Commandline mà tôi vừa mở rộng. – dummzeuch

7

Để tự động hóa, tôi sử dụng Apache Ant, là a software tool for automating software build processes. Tôi sử dụng nó cho tất cả các dự án của tôi, từ Delphi 6 đến Delphi 2009, và Free Pascal.

Những thứ có thể làm "ngoài hộp" bao gồm tạo tổng kiểm tra MD5, tạo tệp ZIP, tìm kiếm/thay thế văn bản (hữu ích cho việc tạo tiêu đề bản quyền), thực thi câu lệnh SQL, xử lý XSLT.

Ví dụ, để biên dịch tất cả các dự án với Delphi 6, đây là (một phần của) các kịch bản:

<target name="compile_d6"> 
    <!-- Compile with Delphi 6 --> 
    <apply executable="${d6}\Bin\dcc32" failonerror="true" output="build-d6.log" > 
    <!-- rebuild quiet --> 
    <arg value="-B"/> 
    <arg value="-Q"/> 
    <!-- file paths --> 
    <arg value="-I${source};${indy10}/Lib/System"/> 
    <arg value="-O${source};${indy10}/D6;${jcl}/d6"/> 
    <arg value="-U${source};${indy10}/D6;${jcl}/d6"/> 
    <!-- all *.dpr files in current directory --> 
    <fileset dir="."> 
     <patternset><include name="*.dpr"/></patternset> 
    </fileset> 
    </apply> 
</target> 

miễn phí mã nguồn mở CI (liên tục tích hợp) các máy chủ như Hudson/Jenkins hỗ trợ Apache Ant xây dựng kịch bản ra khỏi hộp, có nghĩa là bạn có thể yêu cầu họ xây dựng dự án tự động bất cứ khi nào bạn kiểm tra trong một thay đổi trong kho lưu trữ nguồn.

+1

trông đẹp ... vui lòng giải thích thêm – gath

+0

Câu trả lời của tôi bao gồm hai liên kết đến trang chủ dự án và bài viết trên Wikipedia. bạn có câu hỏi riêng không? – mjn

+1

Vâng, đây là một cách tốt để đi. Tôi đã làm một cái gì đó tương tự với NAnt, đó là một cổng .NET của Ant. –

1

Tôi đề nghị kết hợp giữa NAnt và dcc32, nhưng cũng có số "WAnt - A Pascal-Friendly Build Tool" của Juancarlo Añez. Tôi đã sử dụng phiên bản sửa đổi của 1.x thay vì alpha 2.x. Vì nó là mã nguồn mở, tôi có thể mở rộng mã để đăng nhập đầu ra bằng XML với cùng định dạng như NAnt, vì vậy tôi có thể tích hợp nó với CruiseControl.NET.

+0

Tôi đang sử dụng CruiseControl.NET với NAnt. Có vấn đề gì với NAnt vì vậy bạn sẽ sử dụng WAnt thay thế? – mghie

+0

Khi lần đầu tiên tôi bắt đầu sử dụng WAnt, sự hỗ trợ của hộp để xây dựng dự án Delphi và chạy thử nghiệm DUnit dường như hấp dẫn hơn đối với tôi. Như tôi đã nói, tôi sẽ thử NAnt nếu tôi bắt đầu từ đầu. –

+0

Hy vọng chúng tôi vẫn đang gắn bó với Delphi 6 & 7 ... – gath

3

Bạn có thể xây dựng tất cả mọi thứ bằng dòng lệnh này:

"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -Q -B your-project.dpr 

Đặt dòng này trong một file .bat, do đó bạn không cần phải gõ nó luôn.Hãy xem các tùy chọn dòng lệnh đang chạy:

"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -h 

BTW: -Q là biên dịch yên tĩnh và -B sẽ xây dựng lại mọi thứ. Nếu bạn muốn một trình biên dịch nhanh hơn không sử dụng -B.

Nó sẽ sử dụng tất cả các tùy chọn trong tệp project.cfg của bạn. Tôi đã tìm thấy điều này dof2cfg executable rất hữu ích. Với nó, tôi có thể chỉnh sửa tập tin văn bản .dof và truyền sự thay đổi cho dòng lệnh và IDE. Không cần phải mở cho mỗi dự án.

Cảnh báo quan trọng: Trình biên dịch dòng lệnh Delphi 7 có lỗi rất lạ. Nếu đường dẫn của bạn là rất dài, nó sẽ thất bại với một lỗi không thể hiểu được: một vi phạm truy cập mà không có bất kỳ thông tin có ý nghĩa. Nếu nó không thành công mà không có động cơ hợp lý, hãy cố gắng giảm đường dẫn đầy đủ của bạn và kích thước tên tệp.

+1

Tôi vừa mới viết và tải lên bdsproj2cfg lên CodeCentral, thực hiện tương tự cho các tệp .bdsproj được Delphi 2005 và 2006 sử dụng. Chỉ trong trường hợp ai đó cần nó ... – dummzeuch

0

Đối với các phiên bản sau này của Delphi, điều này sẽ được thay đổi để:

"C: \ Program Files (x86) \ Embarcadero \ RAD Studio \ 8.0 \ bin \ DCC32.exe" -h

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