从Qt 5.6切换到Qt 5.7 - "no member 'make_unique' in namespace std"
switching from Qt 5.6 to Qt 5.7 - "no member 'make_unique' in namespace std"
我有一个CMake Qt项目,它使用了几个c++14功能,包括std::make_unique
。通常情况下,这将由以下任一方处理:
LIST(APPEND CMAKE_CXX_FLAGS -std=c++14)
或
ADD_COMPILE_OPTIONS(-std=c++14)
我想将项目从5.6版本升级到5.7版本,但在测试构建过程中出现了多个错误
命名空间std 中没有成员"make_unique"
我已经验证了所有合适的头和编译选项都已到位,并排除了任何环境问题。使用Qt 5.7肯定是个问题。有什么变通办法吗?
所以这是CMake/Qt 5.7的一个已知问题。显然,自从CMake 3.1以来,定义在CMake中使用哪个C++标准的正确方法是使用
SET(CMAKE_CXX_STANDARD 14)
从Qt 5.7开始,对CMAKE_CXX_STANDARD
使用除以外的任何方法都将导致c++14错误,如问题中所述。使用这个方法为我的构建清除了所有错误。
有趣的是,这个错误报告读起来很有趣,因为最初这个问题被认为是一个发布阻塞,然后降级为已知问题,最终(似乎)甚至从已知问题列表中清除。
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- Qt Creator 在执行步骤 "make" 时出现编译错误,-fno-stack-limit
- 为什么我在使用 Qt creator 用 C 编译代码时出错,但可以使用 make 文件轻松做到这一点
- QT make在构建时有很大的输出
- 使用qt构建qt-make项目时出错
- Make QTimer public. (Qt, C++)
- 编译 Android 版 Qt:"mingw32-make"不被识别为内部或外部命令