c/c++对第三方库的引用,需要考虑到gcc/g++版本是否符合库的最低要求。
以下是在Ubuntu20.04上的测试结果:
orejia@localhost:~$ g++ --version | head -1
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
orejia@localhost:~$ g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
#define __cplusplus 201402L
以下是在Ubuntu18.04上的测试结果:
root@ems-virtual-machine:~# g++ --version | head -1
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
root@ems-virtual-machine:~# g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
#define __cplusplus 201402L
总结:ubuntu18.04和ubuntu20.04两个版本的系统,虽然g++的默认编译器版本不同,但都是默认执行C++14的编译标准,对应于C++14的语言特性及标准库。