2012-03-29 54 views
11

Vì 4.8.0 đã hết, tôi đã cài đặt lại Qt và bây giờ tôi cũng muốn sử dụng cmake. Để làm cho cmake làm việc, tôi nhớ phải thêm thư mục bin mingw (QtSDK\Desktop\Qt\4.7.3) để PATH trở lại trong Qt4.7.3, vì vậy tôi đoán rằng sẽ có một thư mục tương tự trong QtSDK\Desktop\Qt\4.8.0 bây giờ nhưng đây không phải là trường hợp. Câu hỏi của tôi là, không ai khác có kinh nghiệm với việc thiết lập Qt và cmake? Tôi có thể sử dụng một số trợ giúp ngay bây giờ, như tôi đã googled cho một chút và không thể tìm thấy bất kỳ cách nào để làm cho cmake làm việc.cmake không tìm thấy Qt4

Khi cố gắng xây dựng, tôi nhận được tin nhắn này nổi tiếng:

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE): 
    Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_INCLUDE_DIR) 
Call Stack (most recent call first): 
    C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE) 
    C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindQt4.cmake:1171 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) 
    CMakeLists.txt:3 (find_package) 
+0

Tôi khá chắc chắn rằng tất cả những gì tôi phải làm là đảm bảo rằng biến môi trường QT_ROOT của tôi đã được đặt (C: \ Qt \ 4.8.0 \ trên máy của tôi). – tmpearce

+0

@tmpearce: Trong CMakeLists.txt, bạn có nghĩa là gì? Nếu không, bạn có thể vui lòng thêm làm thế nào để làm điều này? – Neko

+0

Tôi sẽ tắt đường dẫn "c: \ ..." để giả sử bạn đang ở trong cửa sổ. Từ menu ngữ cảnh "My Computer" nhấp chuột phải, bạn có thể tìm đường đến "Biến môi trường". Google nếu bạn cần thêm trợ giúp, tôi không có Windows ở nhà tại đây. Khi bạn ở đó, bạn có thể tạo Biến môi trường mới ("PATH" thường là một ví dụ) nếu bạn cần (ví dụ tôi đã mô tả trong nhận xét đầu tiên). – tmpearce

Trả lời

4

Vì vậy, tôi phát hiện ra vấn đề là gì, và tôi nghĩ rằng tôi đáng lẽ phải biết trước. Tôi chỉ cần thêm C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin vào biến PATH của tôi. Nó có thể hữu ích để lưu ý rằng, trong một cài đặt mặc định 4.8.0, qmake được đặt trong C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin như trái ngược với C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin trong 4.7.3. Chú ý sự khác biệt; msvc2010 so với mingw. Nó thực sự rất rõ ràng, vì msvc2010 là thư mục duy nhất trong thư mục đó.

Tôi không thử câu trả lời của skyhisi vì nó không còn cần thiết nữa, nhưng tôi đoán rằng đó là một cách khác (nếu không tốt hơn) để làm công việc cmake.

8

Bạn chỉ cần thiết lập các đường dẫn đến qmake trong QT_QMAKE_EXECUTABLE, và sau đó cmake có thể sử dụng qmake -query để tìm tất cả các đường dẫn khác nó cần (tương tự như pkg-config trên Linux).

Các bước để xây dựng một dự án sử dụng Qt và CMake thường là:

  1. Check-out/tạo thư mục nguồn dự án
  2. Tạo xây dựng thư mục bên ngoài thư mục dự án
  3. Bắt đầu Qt command prompt/cmdcd vào thư mục build cd build\project
  4. Chạy đường dẫn cmake hoặc cmake-gui tới thư mục nguồn, ví dụ: cmake-gui ..\..\source\project
  5. Set bất kỳ biến, chẳng hạn như QT_QMAKE_EXECUTABLECMAKE_BUILD_TYPE
  6. Chạy công cụ xây dựng của bạn, hoặc chạy cmake --build .
+0

Hướng dẫn VTK nói sử dụng cờ '-DQT_QMAKE_EXECUTABLE: PATH =/path/to/qmake', nhưng điều này không hiệu quả đối với tôi. –

2

Chỉ cần chạy vào cùng một vấn đề ... Hãy nhìn vào findQt4.cmake

FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 qmake-mac PATHS 
    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin" 
    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin" 
    "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]/bin" 
    $ENV{QTDIR}/bin 
    DOC "The qmake executable for the Qt installation to use") 

Bạn có thể khóa registry alter, hoặc, cá nhân tôi thích cách xóa tất cả những phím hoàn toàn và sửa đổi $ ENV {QTDIR } biến. Chúc may mắn.

+0

Rất cám ơn! Tôi vừa mới gỡ bỏ cài đặt 4.8.5-vs2010 và cài đặt 4.8.5-mingw, và các trình cài đặt đã điều chỉnh một thứ gì đó. Tôi đã truy tìm tệp 'findQt4.cmake' nhưng không tìm thấy vấn đề. Bài viết của bạn đã chỉ cho tôi 'Phiên bản' trong HKCU, mà tôi thấy .. trống. Nó bật ra rằng bằng cách nào đó trình cài đặt đã đặt mục nhập theo một tài khoản sai! Tôi hoàn toàn chắc chắn rằng tôi chạy trình cài đặt là 'tôi, bản thân mình', không phải ở màn hình thứ hai. Dù sao, tôi đã chuyển 'phiên bản' từ tài khoản thứ hai đó sang tài khoản của tôi, và cmake giờ đã tìm thấy đúng Qt4. Ngoài ra, đáng chú ý là việc đặt các khóa trên toàn cầu tại HKLM không hoạt động. – quetzalcoatl

2

Tôi gặp sự cố này vì một lý do hơi khác. Có thể điều này sẽ giúp người khác:

Tôi đã gỡ cài đặt Qt 4.8.3 và sau đó cài đặt qt 4.8.4. Dựa trên câu trả lời Slava của tôi phát hiện ra rằng CMake là nhận được giá trị của $ (qt_install_version} từ:.

[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\DefaultVersion] 

này vẫn thiết lập để 4.8.3 mặc dù tất cả các mục đăng ký khác đã được cập nhật để 4.8.4 Thay đổi giá trị của khóa DefaultVersion đến 4.8.4 đã khắc phục sự cố cho tôi.

0

tôi đã cùng một vấn đề và tôi giải quyết cung cấp đường dẫn đến qmake,

QT_QMAKE_EXECUTABLE /opt/qt-4.8.7/bin/qmake 

Trên Mac, trong khi những chương trình được lưu trong /usr/local/Trolltech/Qt-4.8.7/bin các qmake cần yêu cầu như giá trị của QT_QMAKE_EXECUTABLE là, đối với hệ điều hành của tôi, được lưu trữ trong đường dẫn /opt/qt-4.8.7/bin/qmake. Hy vọng điều này giúp đỡ là tốt.

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