您的位置:首页 > 财经 > 金融 > fw网页制作教程_苏州苏州设计公司_苏州网站建设哪家靠谱_成都抖音seo

fw网页制作教程_苏州苏州设计公司_苏州网站建设哪家靠谱_成都抖音seo

2024/12/24 2:27:30 来源:https://blog.csdn.net/combination1379/article/details/144558141  浏览:    关键词:fw网页制作教程_苏州苏州设计公司_苏州网站建设哪家靠谱_成都抖音seo
fw网页制作教程_苏州苏州设计公司_苏州网站建设哪家靠谱_成都抖音seo

本篇文章简要介绍如何在 Windows 上结合 CMake 使用 C++ 20 的新特性 modules。
为什么非要使用 CMake?对于中大型项目,使用构建工具能够方便我们管理构建项目所需要的依赖。CMake 是 C++ 构建工具中比较流行的一种。

文章目录

  • 1. 源代码
  • 2. 构建项目

1. 源代码

下面进入正题。项目的结构如下所示:
在这里插入图片描述
mymath.cppm 文件中的内容如下:

module;   // 告知编译器这是一个moduleexport module mymath;	// 对外导出模块mymathexport int add(int a, int b) {return a + b;
}export int multiply(int a, int b) {return a * b;
} 

main.cpp 文件中的内容:

// main.cpp
import mymath;#include <iostream>int main() {int a = 5;int b = 3;std::cout << "Add: " << add(a, b) << std::endl;std::cout << "Multiply: " << multiply(a, b) << std::endl;return 0;
}

CMakeLists.txt 文件中的内容:

cmake_minimum_required(VERSION 3.28)  # 从 cmake3.28 开始支持C++20
project(std_module_example CXX)# set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "2182bf5c-ef0d-489a-91da-49dbc3090d2a")# Default to C++ extensions being off. Clang's modules support have trouble
# with extensions right now and it is not required for any other compiler
set(CMAKE_CXX_EXTENSIONS OFF)set(CMAKE_CXX_STANDARD 20)
add_library(mymath)# target_sources()用来为目标(库或可执行文件)添加源文件。
target_sources(mymathPUBLIC  # 表示该模块可以被其它目标使用FILE_SET cxx_modules TYPE CXX_MODULES FILES  # 指定源文件的类型为C++模块mymath.cppm
)
add_executable(hello main.cpp)
target_link_libraries(hello PRIVATE mymath)

2. 构建项目

在项目的当前目录下创建 build 目录,然后进入build 目录。
输入cmake .. 构建项目:
在这里插入图片描述
需要确保构建的编译器支持 C++ 20特性。

然后,编译项目,输入:cmake --build .
在这里插入图片描述
执行可执行文件:
在这里插入图片描述
遇到的问题:

  • 编译器无法自动补全自己创建的 module。原因:可能是编译器的自动补全没有检测到自定义的模块。这个问题未能解决,不过并不影响编译。

版权声明:

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

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