Russian Qt Forum
Ноябрь 23, 2024, 10:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4.8.2 и проблемы с С++11  (Прочитано 5221 раз)
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 , под нее все копилится....
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Ноябрь 15, 2017, 01:04 »

Инициализация в хедере?? "так конь не ходит"

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

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

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Ostapich
Гость
« Ответ #2 : Ноябрь 15, 2017, 08:28 »

А ни как без этого? Можно как то все фишки 11 плюсов подрубить?
« Последнее редактирование: Ноябрь 15, 2017, 08:38 от Ostapich » Записан
Ostapich
Гость
« Ответ #3 : Ноябрь 15, 2017, 08:31 »

И вообще , как на qt 5.9.2 собрать динамический или статический exe под Windows XP. Собрал я в папку все библиотеки на которые ругается , в xp  не хочет работать.
Записан
Ostapich
Гость
« Ответ #4 : Ноябрь 15, 2017, 08:39 »

Просто получается два варианта, либо с 10-ки собирать под xp,  либо с виртуальной машины  xp собирать, но тут геморой обозначается....
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #5 : Ноябрь 15, 2017, 08:41 »

Цитировать
И вообще , как на qt 5.9.2 собрать динамический или статический exe под Windows XP.

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

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

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

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

ArchLinux x86_64 / Win10 64 bit
Ostapich
Гость
« Ответ #6 : Ноябрь 15, 2017, 08:43 »

Да че то гугл фарш выдает по этому поводу... Ничего не пойму...)
Записан
Ostapich
Гость
« Ответ #7 : Ноябрь 15, 2017, 09:54 »

Ну вот например, мне не обязательно статическая сборка. В 10-ке , я собрал все dll в папку с exe. на 10-ке работает, а как на виртуальную машину переношу, ругается. В чем может быть дело?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Ноябрь 15, 2017, 20:49 »

нужно собирать компилятором, который поддерживает ХР. например, в свежей Студии по умолчанию он ХР не поддерживает — там надо выбирать особый тулчейн или добавлять какой-то специальный макрос в этап сборки.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #9 : Ноябрь 15, 2017, 22:05 »

С qt 5.9.x такое не пройдет, т.к. в некоторых местах используется только Win7-based API, которого ну нет в XP. Но для qt4.8.x вполне реально.
Записан

ArchLinux x86_64 / Win10 64 bit
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Ноябрь 17, 2017, 03:19 »

с 5.6 проходит Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 23.