summaryrefslogtreecommitdiff
path: root/components/cplusplus/cpp11/README.md
diff options
context:
space:
mode:
author192.168.1.134 <[email protected]>2021-10-09 16:25:13 +0800
committer192.168.1.134 <[email protected]>2021-10-09 16:25:13 +0800
commit1cc7c67850fe8beda95c95ae7f077b30b5088b56 (patch)
tree6c3b12639c7411983833965d638e5e5cc8ad3190 /components/cplusplus/cpp11/README.md
parentb404f69f851817c62697074ffb363294b91585c6 (diff)
parent50433a51bd328f424172ac8471f4b3044343dcfb (diff)
Merge branch 'master' of https://github.com/RT-Thread/rt-thread
Diffstat (limited to 'components/cplusplus/cpp11/README.md')
-rw-r--r--components/cplusplus/cpp11/README.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/components/cplusplus/cpp11/README.md b/components/cplusplus/cpp11/README.md
new file mode 100644
index 0000000000..a292051608
--- /dev/null
+++ b/components/cplusplus/cpp11/README.md
@@ -0,0 +1,49 @@
+# C++ 11 support for RT-Thread
+
+## Features
+
+Here are some features about rt-thread c++11 threading futures.
+
+- Atomic.
+- Conditional variables.
+- Clocks.
+- Future.
+- Mutexes.
+- Threads.
+- TLS.
+
+## How To Use
+
+Note that using C++ 11 in rt-thread requires modifying some of the files in the toolchain. Before modifying the tool, back up the tool chain.
+
+1. Enable c++11 support
+
+ ![](figures/Snipaste_2021-09-02_16-00-09.png)
+
+2. Download toolchain GCC 10.2.1:
+
+ ```shell
+ gcc version 10.2.1 20201103 (release) (GNU Arm Embedded Toolchain 10-2020-q4-major)
+ ```
+
+3. Delete the following files:
+
+ ```shell
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/thread
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/mutex
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/condition_variable
+ rm -f toolchain/arm-none-eabi/include/c++/10.2.1/future
+ rm -f toolchain/arm-none-eabi/include/pthread.h
+ ```
+
+4. Clear the contents of the following files and keep them to prevent compilation failures:
+
+ ```shell
+ toolchain/arm-none-eabi/include/sys/_pthreadtypes.h
+ ```
+
+5. Update `rtconfig.py` file. add compilation parameters:
+
+ ```shell
+ CXXFLAGS = CFLAGS + ' -std=c++11 -fabi-version=0 -MMD -MP -MF'
+ ```