用户定义的文字和空格以及c ++ 11问题

时间:2017-07-14 12:32:40

标签: qt c++11 gcc

我正在编译非常简单的代码,作为输出我收到错误:

`../untitled6/main.cpp:17:1: error: unable to find string literal operator 'operator"" __FILE__'
     connect(&d_t, SIGNAL(timeout()), this, SLOT(doPlay()));`

代码如下:

#include <QObject>
#include <QTimer>

class Test : public QObject
{
    Q_OBJECT
public:
    explicit Test(QObject *parent = 0) : QObject(parent) {}

    void Play()
    {
         connect(&d_t, SIGNAL(timeout()), this, SLOT(doPlay()));
    }

public slots:
    void doPlay() {}

private:
    QTimer d_t;
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Test test;
    test.Play();
    return a.exec();
}

只有在我的项目中包含c ++ 11支持才会发生。没有这种支持,编译就是Okey。我已经阅读了gcc ver的用户定义文字和空格。 4.7包含c ++ 11支持时。但我的代码不包含任何 FILE 代码....我发现问题与SIGNAL和SLOT结构有关。但我不知道这里有什么问题...... 附:对于编译,我使用sh4-linux-g ++(GCC)4.8。

我发现发布版本配置没有发现此问题。这似乎是调试构建配置的问题......

1 个答案:

答案 0 :(得分:1)

这已在Qt 4.8.1中修复:

你应该升级。