2015-11-03 28 views
6

như vậy Tôi đang sử dụng Qt Creator 3.5.1 và QT 4.8.2 trên Ubuntu 14.04 LTS máy chủ, tôi cấu hình BeagleBone Kit của tôi cho ARM crosscompiling như thế này: QT for BeagleBoneQMainWindow: Không có tập tin hoặc thư mục

tôi m theo sau these steps, nhưng tôi gặp lỗi khi cố gắng biên dịch dự án QT mặc định QMainWindow Error

Tôi có thiếu gì đó không? Nếu nó không được tìm thấy, nó không được đặt ở vị trí mà trình biên dịch trông. Bạn sửa lỗi này như thế nào?

Đây là tập tin dự án của tôi

Picture of my project

+1

Bạn có thể đăng tệp .pro của mình không? bạn có thể thiếu tùy chọn "widgets" trong biến QT. – HappyCactus

+0

Tôi đã đăng nó. @HappyCactus –

+1

Trường sysroot là đáng ngờ. và kiểm tra cấu hình bộ, "!" dấu hiệu màu vàng cho bạn biết rằng có gì đó không ổn. – HappyCactus

Trả lời

1

Có lỗi trong khi xây dựng qt từ nguồn hoặc thiếu thứ gì đó. Hãy thử tìm kiếm QMainWindow.h trong qt bao gồm dir. Có vẻ như nó đang ở trong /usr/local/qt4.8.2-armhf/include. Ví dụ, bạn có thể tìm kiếm như thế này find * /usr/local/qt4.8.2-armhf/include/ | grep QMainWindow.

0

Trước hết bạn cần đảm bảo rằng công việc biên dịch chéo, biên dịch hello world: std::cout << "hi\n" và chạy trên thiết bị sử dụng chéo comipler gcc từ dòng lệnh.

Bước thứ hai là đảm bảo rằng qmake từ chéo biên soạn Qt làm việc như mong đợi, chạy /usr/local/qt4.8.2-armhf/bin/qmake path/to/your/pro/file && make nếu tất cả các công trình sau đó bước tiếp theo

Thứ ba, tại cấu hình cuối cùng Qt Creator

Look đây: http://developer.toradex.com/how-to/how-to-set-up-qt-creator-to-cross-compile-for-embedded-linux

Bạn cần đặt sysroot thành giá trị phù hợp, ví dụ trong trường hợp của tôi là:

/usr/local/oecore-i686/sysroots/armv7a hf-VFP-neon-angstrom-linux-gnueabi/

bên trong thư mục này có "bin" và "lib" đầy thực thi cánh tay và các thư viện cánh tay, đây là những gì "sysroot", nó là một phần của thiết bị của bạn hệ thống tệp được nhân bản vào trình biên dịch chéo của bạn, giúp bạn liên kết các ứng dụng của mình. Ngoài ra, hãy đảm bảo rằng bạn đặt đúng đường dẫn đến qmake để biên soạn chéo trong tùy chọn người tạo Qt, nó sẽ như sau: /usr/local/qt4.8.2-armhf/bin/qmake

0

Có lẽ phiên bản QT Creator của bạn đã lỗi thời. Các dự án có thể bị hỏng nếu bạn cài đặt phiên bản QT Creator không tương thích với chúng. Bạn có thể tải xuống phiên bản mới nhất của QT Creator trong Trung tâm phần mềm.

Bạn cũng cần đảm bảo QT của bạn được cập nhật. Kiểm tra bằng Trình cập nhật phần mềm.

Tôi đã tìm thấy điều này; bạn có thể muốn xem qua: derekmolloy.ie/beaglebone/qt-with-embedded-linux-on-the-beaglebone/#Source_Code

1

Sử dụng Qt 5.8.0 trên Win 7/MSVC2015x64bit;

tôi đã cùng một vấn đề và tôi tìm thấy một cách để sửa chữa nó, ngay cả khi nó không phải là thông minh nhất:

1) Mở projectname của bạn.pro tập tin

2) Giữa QT += core gui greaterThan(QT_MAJOR_VERSION, X): QT += widgets dán QT += widgets vì vậy phần này trông kinda như thế này:

... QT += core gui QT += widgets greaterThan(QT_MAJOR...

Lưu và đóng file .pro và chờ cho Qt để tự động đọc thay đổi tệp và tự cập nhật.
(Nếu bạn đã kích hoạt lại tính năng này hãy thử khởi động lại Qt)

Như thế này - thay thế "X" tại greaterThan(QT_MAJOR_VERSION, X): QT += widgets với số phiên bản trước hoạt động tốt cho tôi. (X = your_major_version - 1)

(Trong trường hợp sử dụng Qt 5.x nơi 4 thay vì 5, sử dụng Qt 3.x thay thế 3 với 2 và vân vân ...)

Tôi không biết nếu điều này cũng làm việc cho các nền tảng khác ...

Tôi hy vọng tôi có thể giúp ít nhất 1 người có cùng vấn đề. ;)

Chúc mừng Zitro

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