升级Poco至1.13.3后libmyemail编译失败,求适配方案
适配libmyemail以兼容Poco 1.13.3的解决方案
错误原因
Poco 1.13.3开始引入了C17标准中的std::literals命名空间,但libmyemail默认的编译配置未启用C17,导致编译器无法识别该命名空间,触发编译错误。
解决方法
方法1:修改libmyemail的CMake配置文件
- 进入libmyemail源码目录,找到并打开
CMakeLists.txt文件 - 查找是否存在
set(CMAKE_CXX_STANDARD X)的配置行(X通常为11或14),将其修改为:set(CMAKE_CXX_STANDARD 17) - 如果未找到上述配置行,就在
project(myemail)语句之后添加该行 - 重新编译:
cd /usr/local/src/libmyemail/build rm -rf ./* cmake .. make
方法2:编译时临时指定C++17标准
无需修改源码文件,直接在cmake阶段传入参数指定C++标准:
cd /usr/local/src/libmyemail/build rm -rf ./* cmake .. -DCMAKE_CXX_STANDARD=17 make
方法3:全局设置C++17标准(适用于多个项目)
- 编辑
/etc/portage/make.conf文件,添加或修改以下配置:CXXFLAGS="-std=c++17" - 保存文件后,重新执行libmyemail的编译步骤即可
内容的提问来源于stack exchange,提问作者Chris972
相关产品推荐
相关产品推荐

