$ git clone https://github.com/google/googletest.git
$ git checkout release-1.12.1
$ cd googletest/build $ cmake .. $ makeこれでスタティックライブラリ等がビルドされる
$ pwd googletest/build $ find -name *.a ./lib/libgtest.a ./lib/libgmock.a ./lib/libgmock_main.a ./lib/libgtest_main.a
-std=c++11または
-std=c++0xを付与する。しかしこれでは fileno(), open() などの関数が無効化されてしまい、ビルドが通らなくなる。この場合、上記の代わりに
-std=gnu++を付与すればよい。
language | ToolChain | option | option GNU Extended) | remark |
---|---|---|---|---|
C++11 | (All?) | -std=c++11 | -std=gnu++ | |
GCC4.3~4.6 | -std=c++0x | -std=gnu++0x | ||
GCC4.7 or later | -std=c++11 | -std=gnu++11 | ||
C++14 | Clang3.5~4.0 | -std=c++1y | -std=gnu++1y | |
Clang5 or later | -std=c++14 | -std=gnu++14 | ||
GCC4.8~4.9 | -std=c++1y | -std=gnu++1y | ||
GCC5.1 or later | -std=c++14 | -std=gnu++14 | ||
C++17 | Clang3.5~4.0 | -std=c++1z | -std=gnu++1z | |
Clang5 or later | -std=c++17 | -std=gnu++17 | ||
GCC6.1~7.0 | -std=c++1z | -std=gnu++1z | ||
GCC7.1~11.0 | -std=c++17 | -std=gnu++17 | ||
GCC11.1 or later | (NONE) | -std=gnu++17 | デフォルトで C++17が有効となる(-std=gnu++17) | |
C++20 | Clang5~10.x | -std=c++2a | -std=gnu++2a | |
Clang11 or later | -std=c++20 | -std=gnu++20 | ||
GCC8.1~10.0 | -std=c++2a | -std=gnu++2a | ||
GCC10.1 or later | -std=c++20 | -std=gnu++20 | ||
C++23 | Clang12 or later | -std=c++2b | -std=gnu++2b | |
GCC11.1 or later | -std=c++23 | -std=gnu++23 | -std=c++2b, -std=gnu++2b も使える |