关于 QtCreartor编写纯C++程序调用不到C++某些标准库和枚举以及运行错误 的解决方法

简介: 关于 QtCreartor编写纯C++程序调用不到C++某些标准库和枚举以及运行错误 的解决方法

需求

       使用高于Qt5版本QtCreator编写纯C++程序。


测试代码

// ios::exceptions
#include <iostream>     // std::cerr
#include <fstream>      // std::ifstream
using namespace std;
int main () {
  std::ifstream file;
  file.exceptions ( std::ifstream::failbit | std::ifstream::badbit );
  try{
    file.open ("test.txt");
    while (!file.eof()) file.get();
    file.close();
  }
  catch (std::ifstream::failure e) {
    std::cerr << "Exception opening/reading/closing file\n";
  }
  return 0;
}


问题

       无法提示调出C++基本库,强制编译可通过但是无法运行成功,具体查看下列截图:


截图1:无法调出C++基本库


图片.png

截图2:编译不报错,运行出错


图片.png


原因

       上面运行错误,是使用mingw编译器,使用mingw在qt中可以跨win/linux但不完美支持标准C++库,而msvc编译器使用了标准C++库又无法跨linux。

       Qt中编写跨平台程序,调用了标准的C++库,mingw中没有,那么跨平台代码会有问题,从项目上来说,最好是依赖Qt本身的,不要过多依赖C++标准库。

       尝试Qt版本:5.2 5.9.3 5.10。


解决方法

       使用msvc编译器即可,mingw编译目前笔者没有找到好的方法,欢迎读者提供在Qt中使用纯C++的跨平台方案。


正常使用截图

图片.png

图片.png


2018年3月31日补充

        感谢网友“十万个为什猫”进一步研究,mingw运行程序出现“已停止程序”的错误是因为:

        图片.png

       最终一起确认如下:

          1.流在gnu不能使用

          2.mingw确实有一些枚举和函数用.操作符操作不出来,但是可以运行

       结论:不建议使用mingw作为c++stl的开发。


相关文章
|
7天前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
172 2
|
10天前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
56 11
|
26天前
|
缓存 算法 程序员
C++STL底层原理:探秘标准模板库的内部机制
🌟蒋星熠Jaxonic带你深入STL底层:从容器内存管理到红黑树、哈希表,剖析迭代器、算法与分配器核心机制,揭秘C++标准库的高效设计哲学与性能优化实践。
C++STL底层原理:探秘标准模板库的内部机制
|
14天前
|
IDE 编译器 开发工具
msvcp100.dll,msvcp120.dll,msvcp140.dll,Microsoft Visual C++ 2015 Redistributable,Visual C++ 运行库安装
MSVC是Windows下C/C++开发核心工具,集成编译器、链接器与调试器,配合Visual Studio使用。其运行时库(如msvcp140.dll)为程序提供基础函数支持,常因缺失导致软件无法运行。通过安装对应版本的Microsoft Visual C++ Redistributable可解决此类问题,广泛应用于桌面软件、游戏及系统级开发。
151 2
|
1月前
|
并行计算 C++ Windows
|
3月前
|
C语言 C++
【实战指南】 C/C++ 枚举转字符串实现
本文介绍了在C/C++中实现枚举转字符串的实用技巧,通过宏定义与统一管理枚举名,提升代码调试效率并减少维护错误。
288 59
|
10月前
|
机器学习/深度学习 人工智能 API
如何在c++侧编译运行一个aclnn(AOL)算子?
CANN的AOL库提供了一系列高性能算子API,优化了昇腾AI处理器的调用流程。通过两段式接口设计,开发者可以高效地调用算子库API,实现模型创新与应用,提升开发效率和模型性能。示例中展示了如何使用`aclnnAdd`算子,包括环境初始化、算子调用及结果处理等步骤。
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
285 6
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
251 10