【问题标题】:Simple QtProject with Cmake: QMainWindow: no such file or directory带有 Cmake 的简单 QtProject:QMainWindow:没有这样的文件或目录
【发布时间】:2013-10-11 23:53:37
【问题描述】:

我要运行的简单代码:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
  class MainWindow;
}

class MainWindow : public QMainWindow  
{
  Q_OBJECT

public:  
  explicit MainWindow(QWidget *parent = 0);
  ~MainWindow();

private:
  Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

我的 CMakeLists.txt:

project(SimpleProject)
# The version number
set (SimpleProject_VERSION_MAJOR 1)
set (SimpleProject_Version_MINOR 0)

cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})

在 qtcreator 中运行时显示 QMainWindow: No such file or directory 我正在使用 GCC 4.61(64 位)和 Qt 4.8.4(也出现在 qt5 中)。 所以这似乎与我在其他地方读到的 Qt 中的变化无关。 当我尝试运行 qtcreator 建议的简单 Qt 示例应用程序时,它工作正常。 Qt 已安装并且 qtcreator 能够找到它。但是对于 CMake,它不会。 我是否必须向我的 CMakeLists 添加一些内容以便 qtcreator 能够找到 Qt?

【问题讨论】:

  • 你的 CMakeLists.txt 有很多问题。最大的问题是您没有找到 Qt,因此它不会被添加到您的包含文件夹中。您的应用程序不会链接到 Qt 库和 moc,否则不会调用 uic。
  • 阅读有关如何将 CMake 与 Qt 一起使用的文档:qt-project.org/quarterly/view/using_cmake_to_build_qt_projects

标签: qt cmake qt-creator


【解决方案1】:

我阅读了文档并写了这个并且它有效:

cmake_minimum_required(VERSION 2.8)
PROJECT(SimpleProject)

FIND_PACKAGE(Qt4 REQUIRED)
INCLUDE(${QT_USE_FILE})
ADD_DEFINITIONS(${QT_DEFINITIONS})

SET(SimpleProject_SOURCES main.cpp MainWindow.cpp)
SET(SimpleProject_FORMS MainWindow.ui)
SET(SimpleProject_HEADERS MainWindow.h)

QT4_WRAP_CPP(SimpleProject_HEADERS_MOC ${SimpleProject_HEADERS})
QT4_WRAP_UI(SimpleProject_FORMS_HEADERS ${SimpleProject_FORMS})

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
ADD_EXECUTABLE(SimpleProject
    ${SimpleProject_SOURCES}
    ${SimpleProject_HEADERS_MOC}
    ${SimpleProject_FORMS_HEADERS}
)
TARGET_LINK_LIBRARIES(SimpleProject ${QT_LIBRARIES})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多