2012-05-06 29 views
7

Chúng tôi có một menu.pas được sửa đổi.Làm cách nào để biên dịch lại các sửa đổi đối với tệp nguồn VCL (Menus.pas)?

Tại

uses ...,Controls,...; 

Trình biên dịch nêu ra một lỗi nghiêm trọng:

[DCC Fatal Error] Menus.pas(*): F2051 Unit Controls was compiled with a different version of Menus.TPopupMenu

thử:

xóa tất cả DCU trong dự án.

build

xây dựng tất cả

cố gắng bổ sung thêm file vào đường dẫn thư viện dẫn để thêm thư mục db (từ vcl quá) và sau đó đến

[DCC Error] jpeg.pas(872): E2065 Unsatisfied forward or external declaration: 'jpeg_save_markers'

mà là một ngõ cụt.

xóa controls.dcu (tất cả 3) và delphi không biết tự động hóa để biên dịch lại chúng, thay vào đó báo cáo rằng controls.dcu bị thiếu.

+0

IIRC, nếu bạn sửa đổi tệp từ nguồn của delphi, bạn cần biên dịch lại tất cả theo thứ tự cụ thể, tôi chưa bao giờ thực hiện ... – ComputerSaysNo

+0

Vì vậy, bạn đã sửa đổi 'Menus.pas' trong thư mục nguồn của Delphi ? Bạn cần chú ý, rằng các file debug và runtime '* .dcu' được lưu trữ trong thư mục .. \ lib và các thư mục con tùy chọn (tôi chỉ có Delphi 2009 bằng tay vào lúc này, vì vậy nó có thể hơi khác) – TLama

+0

Bạn có thể cũng mang lại 'controls.pas'? –

Trả lời

11

Dưới đây là cách tôi xử lý sửa đổi file nguồn VCL:

  • Tạo một bản sao các tập tin trong cơ cấu dự án của bạn. Thêm tệp vào dự án của bạn hoặc đảm bảo đường dẫn tìm kiếm tìm thấy tệp đã sửa đổi của bạn.
  • Thực hiện sửa đổi, nhưng chỉ trong phần triển khai. Bạn không thể sửa đổi phần giao diện nếu bạn sử dụng bất kỳ đơn vị nào khác mà bản thân họ sử dụng đơn vị bạn đang sửa đổi.
  • Đặt rõ ràng các tùy chọn trình biên dịch ở đầu tệp nguồn được sửa đổi. Sử dụng các tùy chọn Delphi mặc định, như được tìm thấy bằng cách nhấn CTRL + O O trong một dự án vani mặc định.

Tôi đoán rằng một trong hai dấu đầu dòng cuối cùng là những gì đang vấp ngã bạn.

+0

một thủ tục mới đã được thêm vào trong xe: CloseMenu. – none

+0

@David, tôi có nên thêm '{$ MINSTACKSIZE $ 00004000}', '{$ MAXSTACKSIZE $ 00100000}', '{$ IMAGEBASE $ 00400000}' mặc định không? hoặc chỉ mặc định '$ A +, B-, C +, D +, E-, F-, G +, H +, I +, J +, K-, L +, M-, N +, O +, P +, Q-, R-, S -, T-, U-, V +, W-, X +, Y +, Z1} '(Delphi 5) - được tạo bằng' CTRL + OO'. – kobik

+1

@kobik Các đơn vị của tôi chỉ có '{$ R-, T-, H +, X +}'. Tôi nghi ngờ rằng các dự án của tôi biên dịch các tùy chọn phù hợp với tất cả những người khác. Sẽ không đau khi thêm trang web đầy đủ, ví dụ: '{$ A +, B-, C +, D +, E-, F-, G +, H +, I +, J +, K-, L +, M-, N +, O +, P +, Q-, R-, S-, T -, U-, V +, W-, X +, Y +, Z1} '. Nhưng bạn không cần nhiều hơn tôi nghĩ. –

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