麒麟系统(基于Ubuntu)上使用Qt编译时遇到“type_traits文件未找到”的错 ...

打印 上一主题 下一主题

主题 1863|帖子 1863|积分 5589

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在麒麟系统(基于Ubuntu)上使用Qt编译时遇到“type_traits文件未找到”的错误,通常是由于C++标准库头文件缺失或项目设置题目导致的。以下是渐渐办理方案:
1. 安装C++标准库和开发工具

确保系统已安装完备的开发工具链和标准库:
  1. sudo apt update
  2. sudo apt install build-essential libstdc++--9-dev g++
复制代码
如果报错缺少依赖,提示输入apt --fix-broken install。则输入
  1. sudo apt --fix-broken install
复制代码
2. 验证头文件路径

检查标准头文件是否存在:
  1. ls /usr/include/c++/*/type_traits
复制代码
如果路径不存在,重新安装对应GCC版本:
  1. sudo apt install g++-<version> libstdc++-<version>-dev
复制代码
3. 检查Qt项目设置



  • qmake项目(.pro文件):确保未覆盖系统包含路径,例如制止以下设置:
    1. # 错误示例:手动移除标准路径
    2. INCLUDEPATH -= /usr/include
    复制代码
  • CMake项目:检查CMakeLists.txt,制止错误设置include_directories。
4. 设置正确的编译器套件

在Qt Creator中:

  • 进入 工具 -> 选项 -> Kits -> 编译器
  • 确认使用的编译器(如GCC)路径正确,通常为/usr/bin/g++。
  • 确保Kit中选择了正确的Qt版本和编译器。
5. 处理惩罚多版本编译器冲突

若安装了多个GCC版本,切换默认版本:
  1. sudo update-alternatives --config g++
复制代码
在Qt Creator中选择对应版本的编译器路径。
6. 麒麟系统适配

如果标准库路径与常规Ubuntu差别,尝试手动链接:
  1. # 示例:假设头文件实际在/usr/include/x86_64-linux-gnu/c++/9/
  2. sudo ln -s /usr/include/x86_64-linux-gnu/c++/9 /usr/include/c++/9
复制代码
7. 整理并重新构建项目

在Qt Creator中实行:

  • 构建 -> 清除项目
  • 构建 -> 重新构建项目
8. 检查情况变量

确保未设置异常的情况变量(如CPLUS_INCLUDE_PATH),大概干扰头文件搜索路径:
  1. unset CPLUS_INCLUDE_PATH
复制代码
9. 验证编译器包含路径

运行以下下令检查编译器默认路径:
  1. echo | g++ -E -Wp,-v -
复制代码
输出中应包含/usr/include/c++/<version>路径。
10. 更新系统和软件包

升级系统及Qt相关库:
  1. sudo apt upgrade
  2. sudo apt install qtbase5-dev
复制代码
完备示例:安装GCC 10并设置Qt

  1. # 安装GCC 10
  2. sudo apt install g++-10 libstdc++-10-dev
  3. # 在Qt Creator中添加编译器路径:
  4. # C编译器: /usr/bin/gcc-10
  5. # C++编译器: /usr/bin/g++-10
  6. # 在Kit中选择新编译器,重新构建项目
复制代码
通过以上步骤,应能办理因缺失type_traits头文件导致的编译错误。如题目依旧,请提供完备的编译错误日记以便进一步诊断。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表