编译第三方库出错
编译quickfix源码报错如下:
Performing Test HAVE_SHARED_PTR_IN_STD_NAMESPACE
解决:
使用电脑的编译器不支持C++11,在CMakeLists.txt里面加上:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
注意: 查看当前编译器支持的C++标准的方法
命令行中运行下述命令:
gcc -E -dM - </dev/null | grep "STDC_VERSION"
对应关系如下
如果没查到,则默认是c89的标准;
#define STDC_VERSION 199901L,则默认支持的是c99标准;
#define STDC_VERSION 201112L,则默认支持的c11标准;
C ++ 98:__cplusplus是199711L
C ++ 11:__cplusplus是201103L
C ++ 14:__cplusplus是201402L
C ++ 17:__cplusplus是201703L
111