1.1 仓库信息
以下是本笔记所使用的 RxCpp
仓库及其版本等信息。
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)
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