2013-05-23 14 views
5

Tôi đã tìm kiếm trên tài liệu Lazarus IDE một chút, và vì vậy chỉ tìm thấy thông tin liên quan đến việc biên dịch chéo, vì vậy tôi hy vọng ai đó có thể trả lời thẳng về vấn đề này. Tôi hiện đang làm việc trên một dự án sẽ yêu cầu biên dịch cho Windows 32 bit cũng như Windows 64 bit. Ngoài ra, tôi đã thiết lập cả hai phiên bản của trình biên dịch Free Pascal. Lazarus có bất kỳ chức năng tích hợp nào để cấu hình trong cả hai trình biên dịch, và sau đó dựa trên mục tiêu xây dựng, sử dụng trình biên dịch thích hợp? Lý tưởng nhất, điều này sẽ được thực hiện ở cấp độ toàn cầu, do đó cấu hình vẫn tồn tại trên các dự án, nhưng nếu nó chỉ có thể được thực hiện ở cấp dự án, tôi không bận tâm làm theo cách đó.Quản lý toàn cầu của nhiều trình biên dịch trong Lazarus IDE

Trả lời

5

Đọc thêm, tôi nghĩ rằng tôi đã tìm thấy câu trả lời của mình. Tôi đã không nhận ra nó, nhưng fpc có cùng một loại chức năng front-end như gcc. Với điều đó đã nói, việc triển khai chức năng được mô tả trong câu hỏi của tôi chỉ là vấn đề cài đặt trình biên dịch như một trình biên dịch chéo, chứ không phải là một trình biên dịch độc lập. Vì nó không giống như bạn có thể sử dụng trình biên dịch x86_64 để tạo ra một phiên bản 32-bit, bạn sẽ phải biên dịch phiên bản 32-bit, và sau đó crosscompile phiên bản 64-bit. Trong trường hợp của tôi, đầu tiên tôi biên soạn và cài đặt trình biên dịch Win32 sử dụng:

make all install INSTALL_PREFIX=C:\path\to\lazarus\1.0.8\fpc\2.6.3 OS_TARGET=win32 CPU_TARGET=i686 PP=ppc386.exe

Tiếp theo, tôi biên soạn và crossinstalled trình biên dịch 64-bit:

make crossall crossinstall INSTALL_PREFIX=C:\path\to\lazarus\1.0.8\fpc\2.6.3 OS_TARGET=win64 CPU_TARGET=x86_64

Để xác nhận rằng nó đã làm việc, bạn có thể tìm thấy tệp thực thi có tên là ppcrossx64 trong thư mục C:\path\to\lazarus\1.0.8\fpc\2.6.3\bin\i386-win32 của bạn.

+1

xxx -> i386 hiện không khả thi, vì trình biên dịch i386 sử dụng mở rộng (thực tế 10 byte), trong khi các mục tiêu khác không hỗ trợ điều đó. (có thể x86_64 trong khi đó, ban đầu nó không hỗ trợ x87). Điều này nên được cố định bởi softfloat, nhưng làm việc trên đó không phải là không thực sự tiến triển. –

+0

Ah, điều đó có ý nghĩa, sau đó. Vui mừng khi biết nó chỉ không được hỗ trợ và tôi đã không xem xét một số tài liệu. Cảm ơn bạn về thông tin. –

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