Study RxCpp(1)


417
2 mins.

1.1 仓库信息

以下是本笔记所使用的 RxCpp 仓库及其版本等信息。

AB
链接https://github.com/ReactiveX/RxCpp/
commit761b932a80e2be6e2b62d232e754bd96fc448946

1.2 项目信息

为了学习 RxCpp,我们会实际使用 RxCpp,便于测试,加深理解。

1.2.1 构建简单的 CMake 项目

1
2
3
4
5
6
7
# mkdir rxcpp-study
# cd rxcpp-study
# touch CMakeList.txt main.cpp
# tree
.
├── CMakeLists.txt
└── main.cpp

这是一个简单的项目结构,我们将会一步一步完善这个项目。

1.2.1.1 首先是 CMakeList.txt

1
2
3
4
5
6
7
cmake_minimum_required(VERSION 3.25)
project(rxcpp_study)

set(CMAKE_CXX_STANDARD 17)

add_executable(rxcpp_study main.cpp)

1.2.1.2 接下来写一个简单的 main.cpp

1
2
3
4
5
6
#include <iostream>

int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}

1.2.1.3 运行这个项目

1
2
3
4
5
6
7
8
9
10
11
# 首先创建一个 build 目录,避免污染源代码目录
mkdir build && cd build
# 开始生成配置文件
cmake ..
# 用 make 构建项目
make
# 以上完成之后,可以得到 rxcpp_study
./rxcpp_study
# 执行完毕之后应该有以下输出:
# Hello, World!

1.2.2 导入 RxCpp 库

1.2.2.1 导入为第三方库

1
2
3
4
5
6
7
8
9
10
# 首先用git管理仓库
# 首先创建一个 third_party 目录来统一管理第三方库
mkdir third_party

# 接下来将 RxCpp 放到该目录
git submodule add https://github.com/ReactiveX/RxCpp/ third_party/RxCpp

# clone 的 RxCpp是默认分支,可能与本笔记版本不同,我们切换到统一版本
cd third_party/RxCpp
git checkout 761b932a80e2be6e2b62d232e754bd96fc448946

现在我们已经将 RxCpp 加入到我们的项目中来,并通过 git管理该项目。

1.2.2.2 在 CMakeList.txt 中引用 RxCpp

只需在 CMakeList.txt 中增加两行即可使用 RxCpp

1
2
3
4
5
6
7
8
9
cmake_minimum_required(VERSION 3.25)
project(rxcpp_study)

set(CMAKE_CXX_STANDARD 17)

add_executable(rxcpp_study main.cpp)
## 以下是导入RxCpp 的头文件
target_include_directories(rxcpp_study
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/third_party/RxCpp/Rx/v2/src")

1.2.2.3 使用 RxCpp

main.cpp 中导入 rxcpp/rx.hpp 即可

1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <rxcpp/rx.hpp>

int main() {
rxcpp::observable<>::range(1, 5)
.as_blocking()
.subscribe([](int value){ std::cout << value << std::endl;},
[](){});
return 0;
}

运行结果如下:
1
2
3
4
5

您正在使用不支持或禁用了 JavaScript 的浏览器访问我们的网站。

请考虑启用 JavaScript 以获得更好的浏览体验。

要访问真正的网站 "uocat.com",请手动复制以下网址并在您喜欢的浏览器中打开:

https://uocat.com