|
3 | 3 | 一个简单的示例, 在 reader 进程中执行 writer 进程里的函数
|
4 | 4 | (该示例未必能成功执行, 因为可能运行于容器 (参见 docker `--tmpfs` 参数) 等权限受限的环境中):
|
5 | 5 |
|
6 |
| -<https://github.com/shynur/ipcator/blob/717fe3cd3a39519d66e59dcf97bcbd04c0893fcc/src/ipc-writer.cpp#L1-L21> |
7 |
| -<https://github.com/shynur/ipcator/blob/717fe3cd3a39519d66e59dcf97bcbd04c0893fcc/src/ipc-reader.cpp#L1-L13> |
| 6 | +<https://github.com/shynur/ipcator/blob/80877e5861182402f079f15210fd6115d0150ba1/src/ipc-writer.cpp#L1-L21> |
| 7 | +<https://github.com/shynur/ipcator/blob/80877e5861182402f079f15210fd6115d0150ba1/src/ipc-reader.cpp#L1-L13> |
8 | 8 |
|
9 | 9 | 你可自己手动编译执行; 也可根据 [测试双进程间的通信](#测试双进程间的通信) 的提示,
|
10 | 10 | 将以上两段代码分别填到 [`src`](./src/) 目录下的 `ipc-*.cpp` 文件中,
|
11 |
| -再在仓库目录用 `NDEBUG=1 CXX=g++-10 ISOCPP=20 make ipc` (自己调整 `CXX` 和 `ISOCPP`) 自动执行. |
| 11 | +再在仓库目录用 `NDEBUG=1 CXX=g++-10 ISOCPP=2a make ipc` (自己调整 `CXX` 和 `ISOCPP`) 自动执行. |
12 | 12 |
|
13 | 13 | ## 功能
|
14 | 14 |
|
@@ -47,7 +47,7 @@ IPCator 抗拒使用第三方库,
|
47 | 47 |
|
48 | 48 | #### `<format>` ➡️ `fmt/format.h`
|
49 | 49 |
|
50 |
| -C++20 开始提供 `<format>`, 但 `g++-10 -std=c++20` 实际只支持部分新特性. |
| 50 | +C++20 开始提供 `<format>`, 但 `g++-10 -std=c++2a` 实际只支持部分新特性. |
51 | 51 |
|
52 | 52 | 通过执行 `make print-vars | grep LIBS -` 查看 `LIBS` 变量中是否包含 `fmt`.
|
53 | 53 | 如果*是*, 说明本地缺少 `<format>` 库, 需要额外执行:
|
@@ -89,7 +89,7 @@ NDEBUG=1 make ipc
|
89 | 89 |
|
90 | 90 | ```bash
|
91 | 91 | export CXX=clang++-20 # 替换编译器为 LLVM Clang
|
92 |
| -export ISOCPP=20 # 使用 C++20 |
| 92 | +export ISOCPP=2a # 使用 C++2a |
93 | 93 | export NDEBUG=1 # 如果不使用 GCC, 那么这一步是必须的!
|
94 | 94 | # 这 ^^^^^^^^^^^ 会排除许多独属 GCC 而 Clang 无法识别的 debug 选项.
|
95 | 95 | make clean # 删除用原来的编译器生成的链接库 e.g. `libfmt`.
|
|
0 commit comments