2009-12-19 28 views
9

Làm cách nào để tôi có thể biên dịch ứng dụng của mình trên Qt. Đối với mỗi dự ánLàm thế nào để vượt qua ứng dụng biên dịch qt cho các nền tảng khác nhau

Tôi cần hai phiên bản

1). Chạy trên máy tính trên Qvfb & Kiến trúc i386

2). Chạy trên thiết bị với Linux Framebuffer & Kiến trúc ARM

Tôi đã biên dịch Qt cho thiết bị cũng như cho Qvfb. Tôi có thể chạy các ví dụ trên cả hai nền tảng, Nhưng Làm cách nào tôi có thể biên dịch các ứng dụng của mình. Tôi muốn cả hai đầu ra nằm trong các thư mục khác nhau, điều đó có nghĩa là đầu ra của i386 vẫn nằm trong nền tảng đầu ra-i386 và đầu ra của ARM vẫn nằm trong thư mục đầu ra-ARM.

Tôi đang sử dụng Qt 4.6 cho Embedded Linux.

Trả lời

2

Qt lấy tất cả chi tiết nền tảng cụ thể từ tệp mkspec.

Chỉ định tệp mkspec để qmake để biên dịch chéo bằng cách sử dụng đối số dòng lệnh -spec của qmake.

trong tập tin mkspec có rất nhiều định nghĩa mà bạn có thể tùy chỉnh biên soạn cho các nền tảng khác nhau như tôi có thể sử dụng DESTDIR để gửi tập tin đầu ra cuối cùng để thư mục cụ thể, OBJECTS_DIR để gửi tập tin đối tượng vào thư mục cụ thể. MOC_DIR để gửi tệp được tạo bằng moc tới một thư mục cụ thể, UI_DIR để tạo các tiêu đề và tệp cpp được tạo u tới thư mục particluar.

2

Kết thúc this article cho bạn thấy cách thay đổi qmake trong thư mục hoạt động (bạn cần chạy trước tiên make destclean). Bài viết này phác thảo môi trường cơ bản Qt for embedded Linux, chỉ để cung cấp cho bạn bức tranh lớn.

4

Bạn chỉ có thể đặt DESTDIR trong tệp .pro của mình. Xem the qmake variable reference. Bạn cũng có thể muốn điều chỉnh các biến số OBJECTS_DIR, UI_DIR, MOC_DIRRCC_DIR.

+0

Chắc chắn điều chỉnh các thư mục khác. Nếu không, bạn có thể thử liên kết các đối tượng được xây dựng cho một nền tảng vào một tệp thực thi được xây dựng cho một nền tảng khác. –

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