ifstream没有匹配的构造函数用于初始化

问题描述 投票:1回答:1

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

编译以下代码将失败:

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

我的QT .pro文件和CONFIG += c++17中有LIBS += -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);
}
c++ qt qt-creator c++17
1个回答
2
投票

@ 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
© www.soinside.com 2019 - 2024. All rights reserved.