error: ‘char16_t’ does not name a type


一、問題の説明
最近、ICUライブラリに依存するプロジェクトをコンパイル中にエラーが発生しました.
/usr/include/unicode/umachine.h:347:13: error: ‘char16_t’ does not name a type
     typedef char16_t UChar;

二、解決方法
コンパイラのデフォルトのC/C++標準はC 98/C++98で、その時はまだchar 16_tというタイプなので、コンパイルエラーが発生しました.そのため、コンパイラにC++のバージョンを指定し、標準をC 11/C++11に設定する必要があります.これにより、コンパイルはコンパイルできます.cmakeを使用する場合は、CMakeLists.txtのproject()の前にこの行を追加します.
set(CMAKE_C_STANDARD  11)
set(CMAKE_CXX_STANDARD 11)

対応するコンパイラオプションは-std=c++11です.