Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Ostapich от Ноябрь 14, 2017, 21:59



Название: Qt 4.8.2 и проблемы с С++11
Отправлено: Ostapich от Ноябрь 14, 2017, 21:59
Добрый день! По необходимости , на виртуальную машину с Windows XP установил Qt Creator 2.5.2 Qt 4.8.2. Код вот:
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H


#include <QMainWindow>
#include <QTimer>
#include <QTime>
#include "dialog_settings.h"


namespace Ui
{
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    packet_big packet_one= {254, 232, 0, 0, 0, 0, 0, 0, 0};
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
signals:

    void on_off(int baudrate);
    void off();//включение таймера Рё всего РїРѕ нажатию РїСѓСЃРє
    void on();//отключение таймера Рё всего РїРѕ нажатию РїСѓСЃРє
    void sendArray(QByteArray data);
    void pomp_on(packet_big packet_one);
    void pomp_off(packet_big packet_one);



public slots:
    void nasos_on();//включить насос
    void nasos_of();//выключить насос
    void settings_menu();//РѕРєРЅРѕ настроек Com порта
    void disp_lcd_time();//выставление таймера
    void disp_lcd_temp();
    void vizvat_taimer();
    void disp_lcd_temp_timer();
    void save_str(QByteArray data);
    void put_in_array(packet_big data);


private slots:
    void on_Button_clicked();
    void taimer_stop();

private:
    Ui::MainWindow *ui;
    QTimer * timer; //Адресная переменная таймера
    QTimer * updater;
    Dialog_Settings *info;
    int num_time=0;
    int num_temp=0;
    bool flag_but_on=0;
};

#endif // MAINWINDOW_H


Ошибок куча, но все я так понимаю связанные со стандартом С++11.
1)C:\Pro\reactor2\mainwindow.h:21: ошибка: a brace-enclosed initializer is not allowed here before '{' token
2)C:\Pro\reactor2\mainwindow.h:21: ошибка: ISO C++ forbids initialization of member 'packet_one'
3)C:\Pro\reactor2\mainwindow.h:21: ошибка: invalid in-class initialization of static data member of non-integral type 'packet_big'
4)C:\Pro\reactor2\mainwindow.h:56: ошибка: ISO C++ forbids initialization of member 'num_time'
5)C:\Pro\reactor2\mainwindow.h:56: ошибка: ISO C++ forbids in-class initialization of non-const static member 'num_time'
и т.д. в таком духе.

В pro прописал QMAKE_CXXFLAGS += -std=c++0x, не помогло.

Что делать, так как на 10-ке стоит последняя версия QT , под нее все копилится....


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: Racheengel от Ноябрь 15, 2017, 01:04
Инициализация в хедере?? "так конь не ходит"

packet_big packet_one= {254, 232, 0, 0, 0, 0, 0, 0, 0};

перенесите в конструктор.


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: Ostapich от Ноябрь 15, 2017, 08:28
А ни как без этого? Можно как то все фишки 11 плюсов подрубить?


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: Ostapich от Ноябрь 15, 2017, 08:31
И вообще , как на qt 5.9.2 собрать динамический или статический exe под Windows XP. Собрал я в папку все библиотеки на которые ругается , в xp  не хочет работать.


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: Ostapich от Ноябрь 15, 2017, 08:39
Просто получается два варианта, либо с 10-ки собирать под xp,  либо с виртуальной машины  xp собирать, но тут геморой обозначается....


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: kuzulis от Ноябрь 15, 2017, 08:41
Цитировать
И вообще , как на qt 5.9.2 собрать динамический или статический exe под Windows XP.

Ну что, вот, Вы за люди такие, а?  Сложно инфу о поддерживаемых платформах загуглить? :-\

Цитировать
В pro прописал QMAKE_CXXFLAGS += -std=c++0x, не помогло.

Это не имеет ничего общего с C++11, гугл в помошь!

PS: Я понимаю, что тема для новичков, но не до такой же степени! Совесть надо иметь! >:(


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: Ostapich от Ноябрь 15, 2017, 08:43
Да че то гугл фарш выдает по этому поводу... Ничего не пойму...)


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: Ostapich от Ноябрь 15, 2017, 09:54
Ну вот например, мне не обязательно статическая сборка. В 10-ке , я собрал все dll в папку с exe. на 10-ке работает, а как на виртуальную машину переношу, ругается. В чем может быть дело?


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: kambala от Ноябрь 15, 2017, 20:49
нужно собирать компилятором, который поддерживает ХР. например, в свежей Студии по умолчанию он ХР не поддерживает — там надо выбирать особый тулчейн или добавлять какой-то специальный макрос в этап сборки.


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: kuzulis от Ноябрь 15, 2017, 22:05
С qt 5.9.x такое не пройдет, т.к. в некоторых местах используется только Win7-based API, которого ну нет в XP. Но для qt4.8.x вполне реально.


Название: Re: Qt 4.8.2 и проблемы с С++11
Отправлено: kambala от Ноябрь 17, 2017, 03:19
с 5.6 проходит :)