c++ - ifstream 没有匹配的初始化构造函数

标签 c++ qt qt-creator c++17

我正在使用 QT Creator 和 MinGW(均为最新版本),但无法让 ifstream 使用 c++17 中添加的路径参数构造函数。

编译以下代码将失败:

no matching constructor for initialization of 'std::ifstream' 

我的 QT .pro 文件中有 CONFIG += c++17LIBS += -lstdc++fs

MCV https://gcc.godbolt.org/z/Lb3MNT

#include <experimental/filesystem>
#include <fstream>

int main() {
    const std::experimental::filesystem::path my_path = "C:/";
    std::ifstream input_file_stream(my_path);
}

最佳答案

@ user1406186,我复制了你同样的错误,并且能够通过对 .pro 文件进行以下更改来编译它,并且必须指定我需要的 QMAKE使用:

TEMPLATE = app
CONFIG += console c++11

QMAKE_CXXFLAGS += -std=gnu++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

HEADERS +=
LIBS += -lstdc++fs

它还使用以下 C++14/C++11 标准编译:

TEMPLATE = app
CONFIG += console c++14

QMAKE_CXXFLAGS += -std=gnu++14
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

HEADERS +=
LIBS += -lstdc++fs

关于c++ - ifstream 没有匹配的初始化构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55832764/

相关文章:

c++ - 卡住使用 QTcpSocket 发送大文件

qt-creator - QtCreator 没有索引包含 catkin 包的文件

c++ - 要测试代码更改的结果,我是否总是需要重新构建整个东西?

c++ - C++11 中的随机闭区间

c++ - 在 C++11 中实现看门狗定时器

c++ - C++ 中的 Typedef 枚举

c++ - 将 NULL 作为参数传递时,函数重载如何工作?

c++ - 给定一个 QGraphicSscene 和一个 QGraphicsView 我怎样才能写一个 jpg 文件?

c++ - 检查进程是否正在运行 - Windows

c++ - 为什么官方的 Qt 示例和教程不使用智能指针?