您的位置:首页 > 娱乐 > 明星 > Cmake qt_add_library

Cmake qt_add_library

2024/10/5 18:33:38 来源:https://blog.csdn.net/fengzhongye51460/article/details/140064878  浏览:    关键词:Cmake qt_add_library

目录

基本用法

参数说明

示例

创建一个新的Qt项目

创建CMakeLists.txt

​​​​​创建库的源文件

创建主程序文件

构建项目


在Qt中,qt_add_library 是一个用于在CMake构建系统中添加库的命令。这个命令通常用于创建一个新的Qt库,并将其添加到CMake项目中。以下是如何使用 qt_add_library 的一些示例和详细步骤:

基本用法

qt_add_library(<library_name> [STATIC | SHARED | MODULE][EXCLUDE_FROM_ALL]source1 [source2 ...]
)

参数说明

  • <library_name>: 库的名称。
  • [STATIC | SHARED | MODULE]: 指定库的类型,默认为 STATIC,表示静态库。SHARED 表示动态库,MODULE 表示模块库。
  • [EXCLUDE_FROM_ALL]: 如果设置了这个选项,库不会被默认构建。
  • source1 [source2 ...]: 库的源文件列表。

示例

以下是一个简单的示例,展示如何在Qt项目中使用 qt_add_library

创建一个新的Qt项目

首先,确保你已经安装了Qt和CMake。然后,创建一个新的CMake项目目录

mkdir MyQtProject
cd MyQtProject

创建CMakeLists.txt

在项目目录中创建一个 CMakeLists.txt 文件,并添加以下内容:

cmake_minimum_required(VERSION 3.14)
project(MyQtProject LANGUAGES CXX)# 查找Qt包
find_package(Qt6 REQUIRED COMPONENTS Core Gui)# 添加库
qt_add_library(MyLibrary STATICmylibrary.cppmylibrary.h
)# 链接Qt库
target_link_libraries(MyLibrary PRIVATE Qt6::Core Qt6::Gui)# 添加可执行文件
add_executable(MyApp main.cpp)# 链接库和Qt库
target_link_libraries(MyApp PRIVATE MyLibrary Qt6::Core Qt6::Gui)

​​​​​创建库的源文件

在项目目录中创建库的源文件 mylibrary.h 和 mylibrary.cpp

// mylibrary.h
#ifndef MYLIBRARY_H
#define MYLIBRARY_H#include <QObject>class MyLibrary : public QObject
{Q_OBJECTpublic:MyLibrary();
};#endif // MYLIBRARY_H
// mylibrary.cpp
#include "mylibrary.h"MyLibrary::MyLibrary()
{
}

创建主程序文件

创建 main.cpp 文件

// main.cpp
#include <QCoreApplication>
#include "mylibrary.h"int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);MyLibrary lib;return a.exec();
}

构建项目

mkdir build
cd build
cmake ..
cmake --build .

这样,你就创建了一个包含自定义库的Qt项目,并成功构建了它。希望这些步骤能够帮助你在Qt项目中使用 qt_add_library。如果你有任何问题或需要进一步的帮助,请随时告诉我!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com