一、错误描述
昨天在编译 paho.mqtt.cpp-1.0.1 时出错,提示 error: 'to_string' is not a member of 'std' ,
在网上看了一下,类似的错误还有:
error: 'to_string' is not a member of 'std' error: 'thread' is not a member of 'std'
二、原因分析
因为 to_string 和 thread 是 C++11 才支持的,所以出现这种错误的原因可能是编译时漏了支持 C++11 的编译选项。
三、解决办法
3.1 一般情况在编译选项加上 -std=c++11 或 -std=gnu++11。
3.2 如果是使用 cmake 生成 Makefile 的,需要检查 CMakeLists.txt 文件的 C++11配置,加上如下几句代码
## --- C++11 build flags --- add_definitions(-D_GLIBCXX_USE_C99=1) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF)