使用Cmake的简单QtProject:QMainWindow:没有这样的文件或目录

时间:2013-10-11 23:53:37

标签: qt cmake qt-creator

我想要运行的简单代码:

#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:没有这样的文件或目录 我正在使用GCC 4.61(64位)和Qt 4.8.4(也与qt5一起使用)。 所以这似乎与我在其他地方读到的Qt内部的变化无关。 当我尝试运行qtcreator建议的简单Qt示例应用程序时,它工作正常。 Qt已安装,qtcreator能够找到它。但是使用CMake它不会。 我是否必须向我的CMakeLists添加一些内容,以便qtcreator能够找到Qt?

1 个答案:

答案 0 :(得分: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})