问题C1083:无法打开包含文件:“chrono”:没有那个文件或目录 弹出

3
我正在尝试制作一个随机生成6个数字的程序。
这是我的.pro文件。
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Lotto
TEMPLATE = app

CONFIG += c++11

SOURCES += main.cpp\
        mainwindow.cpp \
    lottogenerator.cpp

HEADERS  += mainwindow.h \
    lottogenerator.h

FORMS    += mainwindow.ui

这是我的.h文件。
#ifndef LOTTOGENERATOR_H
#define LOTTOGENERATOR_H


#include <string>
#include <random>
#include <array>
#include <chrono>

class LottoGenerator
{
public:
    typedef std::chrono::high_resolution_clock myclock;

    LottoGenerator();

    std::array<int, 6> get();

private:
    int rand();

    std::mt19937 *engine;
    std::uniform_int_distribution<int> distribution;

    myclock::time_point beginning = myclock::now();
};

#endif // LOTTOGENERATOR_H

这是我的 .cpp 文件。
#include "lottogenerator.h"

LottoGenerator::LottoGenerator()
    : distribution(1,45)
{
    myclock::duration d = myclock::now() - beginning;
    unsigned int seed = d.count();

    engine.seed(seed);
}

std::array<int, 6> LottoGenerator::get()
{
    std::array<int, 6> numbers;

    numbers[0] = rand();
    numbers[1] = rand();
    numbers[2] = rand();
    numbers[3] = rand();
    numbers[4] = rand();
    numbers[5] = rand();

    return numbers;
}

int LottoGenerator::rand()
{
    return distribution(engine);
}

当我运行时,会弹出"C1083:无法打开包括文件:'chrono':没有那个文件或目录"。

如果您能帮忙解决这个问题,我将不胜感激:)


你使用的编译器是哪个?可能不完全支持C++11... - marom
1
我没有使用这个编译器,但我认为你也必须设置 QMAKE_CXXFLAGS += -std=c++11。这在这里有所讨论。 - Cory Kramer
@CoryKramer 鉴于提问者使用的是MSVC,你所指的标志不受支持并且是不必要的。 MSVC支持它支持的任何内容,没有办法强制其支持更多内容。 - Kuba hasn't forgotten Monica
你使用的是哪个版本的MSVC? - Simon Warta
我目前正在使用MSVC 2010。也许像下面的Kuba Ober所说,我使用的版本太旧了。我将安装更当前的MSVC版本并再次尝试。谢谢大家的评论 :) - apolokr2000
1
我已经安装了MSVC 2015社区版,但仍然遇到相同的问题。我应该删除MSVC 2010还是在QT Creator中进行一些设置更改? - apolokr2000
1个回答

1

您正在使用过于陈旧的MSVC版本。错误源自编译器,而非Qt Creator。


我目前正在使用MSVC 2010。我将安装更高版本的MSVC并再次尝试。谢谢您的评论 :) - apolokr2000
1
我已经安装了MSVC 2015社区版,但仍然遇到相同的问题。我应该删除MSVC 2010还是在QT Creator中进行一些设置更改? - apolokr2000
@apolokr2000 1. 下载并解压Qt源代码。2. 打开MSVC命令提示符。3. 为Qt创建一个构建文件夹(不要放在源文件夹内!)。4. 进入构建文件夹。5. <src path>\configure -opensource -debug-and-release -ltcg -nomake examples -angle -platform win32-msvc2015 6. nmake && nmake install 7. 现在您已经构建了Qt。如果您下载Qt Creator并将-make-tool jom提供给配置,则速度会更快;首先确保将jom.exe的文件夹添加到您的路径中。jom随Creator一起提供。注意:Qt的文档中有所有这些信息! - Kuba hasn't forgotten Monica
请问如何为Qt制作一个build文件夹?进入build文件夹后,仅仅将第5步和第6步复制粘贴到命令提示符中是正确的吗?最后,请告诉我如何在配置时加上“-make-tool jom”。我是完全的编程初学者,处理程序时会遇到问题,所以问题就出现了。如果您能帮我解答这些问题,我将不胜感激 :) - apolokr2000
@apolokr2000,尖括号<>只是用来指示您需要替换的部分。您不应该保留它们。最后,您需要的是Qt的源代码,而不是Qt Creator。Qt Creator是一个很好的IDE,但与您正在尝试做的事情无关。Qt是一个工具包,而Qt Creator是一个IDE。 - Kuba hasn't forgotten Monica
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接