相关疑难解决方法(0)

通过CMake实现Qt项目

我试图通过Cmake构建并运行Qt的非常简单和基本的示例,删除.pro文件.以下是Qt项目的代码(自动生成的Qt项目的目录结构是

Cmake (my project name)
??? headers
?   ??? mainwindow.h
??? sources
?   ??? main.cpp
?   ??? mainwindow.cpp
??? forms
    ??? mainwindow.ui
Run Code Online (Sandbox Code Playgroud)

mainwindow.h

#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
Run Code Online (Sandbox Code Playgroud)

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "mainwindow.h"
#include <QApplication> …
Run Code Online (Sandbox Code Playgroud)

c++ qt

40
推荐指数
1
解决办法
3万
查看次数

Ubuntu CMake添加到CMAKE_MODULE_PATH的路径

我的操作系统是Ubuntu.我想在我的项目中从QT4更改为QT5.虽然本机包在Ubuntu中是4.x版本.

我从QT主页下载了Linux安装程序并安装了QT5.4 /opt/Qt/5.4/

找不到此路径

find_package (Qt5 REQUIRED)
Run Code Online (Sandbox Code Playgroud)

我尝试添加

set(CMAKE_MODULE_PATH "/opt/QT/5.4;${CMAKE_MODULE_PATH}")
Run Code Online (Sandbox Code Playgroud)

对我而言CMAKELIST.txt,这没有用.

我在哪里链接,或者我使用错误的语法?

在通过调用提示之后的一些编辑:

 cmake -DCMAKE_PREFIX_PATH=/opt/QT/5.4/gcc_64/ ../src/
Run Code Online (Sandbox Code Playgroud)

我也删除了CMAKE_MODULE_PATH变量.我仍然得到同样的错误:

 CMake Error at CMakeLists.txt:3 (find_package):
 Found package configuration file:
 /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake
 but it set Qt5_FOUND to FALSE so package "Qt5" is considered to be NOT
 FOUND.  Reason given by package:

 The Qt5 package requires at least one component
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会在阅读https://blogs.kde.org/2008/12/12/how-get-cmake-find-what-you-want-it后发生这种情况 .在那里声明,将在默认搜索目录之前搜索路径.我现在使用的路径似乎是:

/opt/QT/5.4/gcc_64/
Run Code Online (Sandbox Code Playgroud)

添加子文件夹gcc_64必须正确,因为此子文件夹具有"lib","include"等子文件夹.

我记得我也打过电话

sudo apt-get install QT5-default 
Run Code Online (Sandbox Code Playgroud)

前一段时间.这没有用,我需要QT的安装程序.虽然我再次删除了qt5-default以防止cmake找到错误的包配置文件,但仍会出现相同的错误.

请参阅下面的讨论,转到此处: Cmake和QT5 - Include只接受一个参数

c++ qt cmake

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×2

qt ×2

cmake ×1