如何在Qt Creator中使用CMake项目添加一个类?

5

我曾经使用Visual Studio编写代码,添加类非常容易。最近,我开始使用Qt Creator编写纯C++项目,并且在添加类时总是会出现一些问题。代码如下:

#include <iostream>
#include "hello.h"

using namespace std;

int main()
{
    Hello H;
    H.say();
    cout << "Hello World!" << endl;
    return 0;
}

我创建了一个名为Hello的类并将其包含在main.cpp中,但是当我编译时会出现一些错误。

enter image description here

那么如何在QT Creator中添加一个类呢?提前感谢!


是的,我是用这种方式做的。这样对吗? - Kidsunbo
是的。我曾经使用VS2012编写代码,这是我第一次使用Cmake。 - Kidsunbo
是的,有一个CMakeLists.txt文件,我不知道如何使用它...我是一个真正的新手。 - Kidsunbo
你能添加CMakeLists.txt的内容吗?hello.cpp文件必须被添加到add_executable()函数中,例如:add_executable(MyProjectName main.cpp hello.cpp) - tomvodi
1
让我们在聊天中继续这个讨论 - Kidsunbo
显示剩余2条评论
2个回答

12

一个使用 main.cppHello 类的非常简单的 CMake 示例项目如下:

CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.11)

project(example)

# Useful CMake options for Qt projects
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

# Search desired Qt packages
find_package(Qt5Core REQUIRED)

# Create a list with all .cpp source files
set( project_sources
   main.cpp
   hello.cpp
)

# Create executable with all necessary source files
add_executable(${PROJECT_NAME}
  ${project_sources}
)

qt5_use_modules( ${PROJECT_NAME} Core )

主程序.cpp:

#include <iostream>
#include "hello.h"

using namespace std;

int main()
{
    Hello H;
    H.say();
    cout << "Hello World!" << endl;
    return 0;
}

你好.h:

#ifndef HELLO_H
#define HELLO_H


class Hello
{
public:
   Hello();
   void say();
};

#endif // HELLO_H

Hello.cpp:

你好.cpp:
#include <iostream>
#include "Hello.h"

Hello::Hello()
{

}

void Hello::say()
{
   std::cout << "Hello from hello class!" << std::endl;
}

0

手动方式:编辑 .pro 文件,然后将 .h 和 .cpp 添加到 "SOURCES" 和 "HEADERS" 部分中,就像这样:

SOURCES += hello.cpp
HEADERS += hello.h

谢谢,它运行了,但还存在一个问题:“**[cmake_check_build_system] Error 1**”。 - Kidsunbo
这个问题是什么意思?谢谢。 - Kidsunbo
2
抱歉,我不知道你在第一篇帖子中使用了CMake。这是QMake的解决方案。 - galinette
3
谢谢您的下投票...因为问题没有提到CMake,所以答案是完全有效的... - galinette

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接