我正在使用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);
}
@ 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