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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3
16  Qt / Общие вопросы / Есть ли возможность использовать различные ресурсные файлы в зависимости от ОС? : Август 24, 2016, 08:51
Добрый день.

Как в коде "разрулить" какой код компилировать под нужную ОС я знаю.

Но стоит задача такая.
1. Есть проект, который использует стандартный pro-файл. Есть разные файлы ресурсов для разных ОС. То есть компилятор должен встраивать в бинарник разные ресурсы.
2. В том же проекте нужно, чтобы некоторые файлы (с ресурсами) копировались в каталог сборки в случае определенной ОС.
Как это реализовать?
17  Qt / Model-View (MV) / Re: Сортировка в QTableView с QAbstractTableModel и данными, хранящимися в QMAp : Август 24, 2016, 08:28
QItemSelectionModel *QAbstractItemView::selectionModel() const
QModelIndexList QItemSelectionModel::selectedIndexes() const
QModelIndex QAbstractProxyModel::mapToSource(const QModelIndex &proxyIndex) const

Большое спасибо! Разобрался. Все сделал.
18  Qt / Установка, сборка, отладка, тестирование / Re: Qt 5.7 статическая сборка с MySQL и OpenSSL для начала в MinGW32 : Август 08, 2016, 11:02
статику редко кто собирает, ибо смысла нет и нарушение лицензии lgpl

что за комп такой что 30 часов собирать ? 20 мин на corei7

очевидно что примеры, тесты и webkit собирать не нужно


Программа, собранная с динамической линковкой, вместе с либами (коре, гуи. виджеты, сеть, эскъяэль и дебагерные версии их, не смотря на то, что выбран профиль релиз), в 5.6 от комьюнити, весит за 500 МБ. Статической линковкой - 16 МБ.

Процессор, Core i7 3770, 8 GB. Но там и без моих экспериментов нагрузка на процессор под 100%. К тому же у меня приоритет ниже среднего.
В VirtualBox на i5-4430 сборка умирает сразу.
19  Qt / Установка, сборка, отладка, тестирование / Re: Qt 5.7 статическая сборка с MySQL и OpenSSL для начала в MinGW32 : Август 05, 2016, 12:12
Просто пока собирается, а мне не хочется терять время впустую.

даладна

делать я не хочу, проверьте сами у кого там есть венда, а мне лень, лучше я тут попишу )

Я просил не "проверить, у кого есть винда", а подсказать, не накосячил ли я в параметрах. (Ну понятное дело, что пути чисто мои). Почему-то я глубоко уверен, что на этом форуме, я далеко не первый, кто пытается сам собрать Qt.

На ПК где я сейчас собираю Qt. Версия 5.6 собиралась более 30 часов. Там и без моих упражнений процессор загружен под завязку. Сами понимаете, нет желания ждать столько времени, чтобы сборка вылетела с ошибкой.
20  Qt / Установка, сборка, отладка, тестирование / Qt 5.7 статическая сборка с MySQL и OpenSSL для начала в MinGW32 : Август 05, 2016, 09:33
Добрый день.
Нужна статическая сборка Qt 5.7

Версию 5.6 собирал так
Код
Bash
configure.bat -static -debug-and-release -platform win32-g++ -prefix " E:\Qt\5.7\minigw_5.3.0_static" \
-opensource -confirm-license -nomake examples -nomake tests -make tools -qml-debug -opengl es2 -no-angle -make libs \
-qt-pcre -qt-libpng  -qt-libjpeg -qt-zlib -qt-freetype -fontconfig -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql \
-I "c:\Program Files (x86)\MySQL\MySQL Connector.C 6.1\include"  -L "c:\Program Files (x86)\MySQL\MySQL Connector.C 6.1\lib" -l libmysql
На всякий случай предварительно собрав плагин mysql.
В Pro-файл прописывл
Код:
QMAKE_LFLAGS_RELEASE += -static -static-libgcc
Все работало. Вот только в каталог bin установленной сборки приходилось докидывать libmysql.dll. А так же помещать этот файл в каталог с exe-шником.
Хотелось бы на выходе получать полностью самодостаточный exe-шник.

Попытка подсунуть mysqlclient.lib приводила к ошибке сборки.

Как сделать правильно сборку статичную сборку с интегрированными библиотеками mysql и openssl?

Еще такой вопрос. Сам я не местный являюсь пользователем Windows и, поэтому,  не пишу платформозависимые программы. Но другу нужны для работы следующие модули  QAxScriptManager, QAxScript и QAxScriptEngin. Насколько я знаю. они доступны только в коммерческой версии?
Проверить я не могу, так как на доступном ПК с винндой нет собранной Qt.

Так же ради познания собираю шаред-версию Qt
Код
Bash
.\configure.bat -shared -debug-and-release -platform win32-g++ -c++std c++11 -prefix " E:\Qt\5.7\minigw_5.3.0_dinamic" -opensource \
-confirm-license -make examples -make tests -make tools -qml-debug -opengl desktop -make libs -qt-pcre -qt-libpng  -qt-libjpeg -qt-zlib -qt-freetype \
-fontconfig -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-db2 -plugin-sql-mysql -openssl -I "C:\MySQL-Win32\Connector-C\include" \
-I "C:\OpenSSL-Win32\include\" -L "C:\MySQL-Win32\Connector-C\lib" -l libmysql
Тут я не допустил ошибку? Просто пока собирается, а мне не хочется терять время впустую.
21  Qt / Model-View (MV) / Re: Сортировка в QTableView с QAbstractTableModel и данными, хранящимися в QMAp : Август 04, 2016, 11:08
Во вьюхе есть свойство разноцветных строк.
С приведенной ранее моделью, это свойство не отработало.
А вот с неизмененной QSortFilterProxyModel все заработало как нужно.

__Heaven__, gil9red! Спасибо за помощь!
Теперь буду разбираться как вытащить из модели данные для выделенных строк. Улыбающийся
22  Qt / Model-View (MV) / Re: Сортировка в QTableView с QAbstractTableModel и данными, хранящимися в QMAp : Август 03, 2016, 17:31
В доке QSortFilterProxyModel написано, что по-умолчанию модель сортирует по Qt::DisplayRole. Можно ей задать и другую роль сортировки используя QSortFilterProxyModel::setSortRole. А если уж совсем хочется свои условия сортировки, тогда нужно создать потомка QSortFilterProxyModel и переопределить метод QSortFilterProxyModel::lessThan

QSortFilterProxyModel отработала как надо. Спасибо.

Теперь другой вопрос появился. Чтобы сделать чередование строк разными цветами, я должен создать свою модель, унаследованную от QSortFilterProxyModel, и переопределить в ней функции data в части Qt:BackgroundColorRole ?
23  Qt / Model-View (MV) / Сортировка в QTableView с QAbstractTableModel и данными, хранящимися в QMAp : Август 03, 2016, 13:20
Добрый день!

Создал свою модель на основе QAbstractTableModel. Данные для модели хранятся в QMap с ключом int и значением в своем типе на основе структуры. (Хотя изначально нужно было, чтобы QMap был с ключом типа QString).

Код:
#ifndef MYDATALISTMODEL_H
#define MYDATALISTMODEL_H

#include <QObject>
#include <QAbstractTableModel>
#include <QVariant>
#include <QModelIndex>

#include "structures.h"

class MyDataListModel : public QAbstractTableModel
{
public:
    MyDataListModel(QWidget *parent = 0);
    ~MyDataListModel();

    int rowCount(const QModelIndex &parent = QModelIndex()) const;

    void updateModel(QString, tMyData, int indexRow = 0);
    void clearData();

private:
    QMap<int, tMyDataModel> MyDataList;

    int columnCount(const QModelIndex &parent) const;
    QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
    QVariant data(const QModelIndex &index, int role) const;
};

#endif // MYDATALISTMODEL_H

Код:
#include "MyDatalistmodel.h"

MyDataListModel::MyDataListModel(QWidget *parent)
{

}

MyDataListModel::~MyDataListModel()
{

}

int MyDataListModel::rowCount(const QModelIndex &parent) const
{
    return(MyDataList.keys().count());
}

void MyDataListModel::updateModel(QString MyDataName, tMyData MyDataInfo, int indexRow)
{
    this->beginResetModel();
    MyDataList[indexRow].MyDataName=MyDataName;
    MyDataList[indexRow].MyDataInfo=MyDataInfo;
    insertRow(indexRow);
    this->endResetModel();
}

void MyDataListModel::clearData()
{
    this->beginResetModel();
    int rowC;
    rowC=rowCount();
    MyDataList.clear();
    removeRows(0,rowC);
    this->endResetModel();
}

int MyDataListModel::columnCount(const QModelIndex &parent) const
{
    return(9);
}

QVariant MyDataListModel::headerData(int section, Qt::Orientation orientation, int role)  const
{
    if(orientation == Qt::Horizontal && role == Qt::DisplayRole)
    {
        switch (section)
        {
            case 1:
                {return(QVariant(tr("Icon")));}
            break;
            case 2:
                {return(QVariant(tr("Data1")));}
            break;
            case 3:
                {return(QVariant(tr("Data2")));}
            break;
            case 4:
                {return(QVariant(tr("Data3")));}
            break;
            case 5:
                {return(QVariant(tr("Data4")));}
            break;
            case 6:
                {return(QVariant(tr("Data5")));}
            break;
            case 7:
                {return(QVariant(tr("Data6")));}
            break;
            case 8:
                {return(QVariant(tr("Data7")));}
            break;
            default:
                {return(QVariant());}
            break;
        }
    }
    else
        {return(QVariant());}
}

QVariant MyDataListModel::data(const QModelIndex &index, int role) const
{
    if (role == Qt::DisplayRole)
    {
        QVariant Unswer;
        switch (index.column())
        {
            case 0:
                {Unswer=index.row();}
            break;
            case 2:
                {Unswer=QVariant(MyDataList[index.row()].MyDataName);}
            break;
            case 3:
                 {Unswer=QVariant(MyDataList[index.row()].MyDataInfo.Data2);}
            break;
            case 4:
            {
                if (MyDataList[index.row()].MyDataInfo.Data3)
                    {Unswer=QVariant("3 A");}
                else
                    {Unswer=QVariant("3 B");}
            }
            break;
            case 5:
                {Unswer=QVariant(MyDataList[index.row()].MyDataInfo.Data4);}
            break;
            case 6:
            {
                if (MyDataList[index.row()].MyDataInfo.Data5)
                    {Unswer=QVariant("5 A");}
                else
                     {Unswer=QVariant("5 B");}
            }
            break;
            case 7:
                {Unswer=QVariant(MyDataList[index.row()].MyDataInfo.Data6);}
            break;
            case 8:
                {Unswer=QVariant(MyDataList[index.row()].MyDataInfo.Data7);}
            break;
            default:
            break;
        }
        return(Unswer);
    }
    else
    {return(QVariant());}
}

Модель назначена для объекта класса QTableView.
Код:
    MyDataModel = new MyDatatModel(this);
    ui->tableView->setModel(APKListModel);
    ui->tableView->setColumnHidden(0, true);
Проблем с отображением данных нет.

Однако, не работает сортировка.
До этого я с моделями не работал. Поэтому не знаю как правильно организовать.
Я не уверен, что QSortFilterProxyModel будет работать из-за такого выбора хранения данных для модели. Или это вообще роли не играет?
24  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 24, 2016, 09:22
В мапах есть серьезные различия в секции Linker script and memory map:
1. В том, что собирается  QBS в начале идут LOAD-ы
Код
ASM
Linker script and memory map
 
LOAD ../.obj/1bf4303e4ce6d9a8/ub_font_arial_7x10.c.o
<....>
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libm.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/armv7e-m/softfp/libgcc.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libc.a
START GROUP
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/armv7e-m/softfp/libgcc.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libg.a
LOAD /usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/lib/armv7e-m/softfp/libc.a
END GROUP
2. Другой порядок расположения объектных файлов в секции линковки, LOAD-ах и .ARM.attributes.
3. Секция .HeapMemSection в qbs-ной версии map-а пустая
Код
ASM
.HeapMemSection
*(.HeapMemSection)
OUTPUT(/home/yamah/Develop/build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/stm32f429.elf elf32-littlearm)

Мапы во вложении.
25  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 24, 2016, 07:19
Разбил опции линковки на строки (везде заменил полный путь на относительный). Порядок опций сохранил.
Для проекта Coocox и собираемый GCC из консоли:
Код
Bash
arm-none-eabi-gcc \
-mcpu=cortex-m4 \
-mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-mthumb \
-g2 \
-nostartfiles \
-Wl,-Map=stm32f429.map \-O0 \
-Wl,--gc-sections \
-L../STM32F429-Disco_FreeRTSOS/src \
-Wl,-T../STM32F429-Disco_FreeRTSOS/ldscripts/ub_linkerscript_stm32f429i_disco.ld \
-g \
-o stm32f429.elf \
../obj/stm32f4xx_gpio.o ../obj/stm32f4xx_usart.o ../obj/stm32f4xx_dma.o ../obj/stm32_ub_led.o ../obj/GUI2.o ../obj/stm32f4xx_ltdc.o ../obj/oszi.o ../obj/stm32f4xx_spi.o ../obj/arm_rfft_f32.o ../obj/misc.o ../obj/stm32f4xx_adc.o ../obj/arm_cfft_radix4_f32.o ../obj/syscalls.o ../obj/stm32f4xx_fmc.o ../obj/stm32f4xx_i2c.o ../obj/arm_max_f32.o ../obj/arm_rfft_init_f32.o ../obj/arm_cmplx_mag_f32.o ../obj/printf.o ../obj/ub_font_arial_7x10.o ../obj/stm32_ub_i2c3.o ../obj/arm_common_tables.o ../obj/stm32_ub_touch_stmpe811.o ../obj/startup_stm32f4xx.o ../obj/stm32f4xx_rcc.o ../obj/stm32_ub_graphic2d.o ../obj/stm32_ub_font.o ../obj/adc.o ../obj/system_stm32f4xx.o ../obj/stm32_ub_uart.o ../obj/arm_cfft_radix4_init_f32.o ../obj/stm32_ub_button.o ../obj/stm32_ub_spi5.o ../obj/GUI1.o ../obj/stm32f4xx_tim.o ../obj/menu.o ../obj/stm32_ub_sdram.o ../obj/stm32f4xx_dma2d.o ../obj/stm32_ub_lcd_ili9341.o ../obj/main.o ../obj/fft.o ../obj/stm32_ub_systick.o \
-lm \
-lgcc \
-lc
Для QBS:
Код
Bash
/usr/bin/arm-none-eabi-g++ \
../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/1bf4303e4ce6d9a8/ub_font_arial_7x10.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/misc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_adc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_dma.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_dma2d.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_fmc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_gpio.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_i2c.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_ltdc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_rcc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_spi.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_tim.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/2ef5d228e5150bb6/stm32f4xx_usart.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/99ec59a75f921e9d/GUI1.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/99ec59a75f921e9d/GUI2.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/adc.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/fft.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/menu.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/a89734a4c67740af/oszi.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/b3fbddc16f9be6a9/printf.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c483ae70643438df/syscalls.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_cfft_radix4_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_cfft_radix4_init_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_cmplx_mag_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_common_tables.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_max_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_rfft_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/c9b3de592116f4ec/arm_rfft_init_f32.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d289b27da2b899ad/startup_stm32f4xx.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_button.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_font.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_graphic2d.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_i2c3.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_lcd_ili9341.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_led.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_sdram.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_spi5.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_systick.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_touch_stmpe811.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_uart.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/e4a5378b16003ec3/system_stm32f4xx.c.o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/fc4a695f02a8a53a/main.c.o \
-g \
-O0 \
-Wall \
-Wextra \
'-Wl,-rpath,$ORIGIN' \
-T../STM32F429-Disco_FreeRTSOS/ldscripts/ub_linkerscript_stm32f429i_disco.ld \
-Wl,--unresolved-symbols=ignore-in-shared-libs \
-mcpu=cortex-m4 \
-mthumb \
-mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-g2 \
-nostartfiles \
-Wl,-Map=stm32f429.map \
-O0 \
-Xlinker \
--gc-sections \
-o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/stm32f429.elf
26  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 24, 2016, 07:10
Разбил опции компиляции на строки (везде заменил полный путь на относительный). Порядок опций сохранил.
Для проекта Coocox и собираемый GCC из консоли:
Код
Bash
arm-none-eabi-gcc \
-mcpu=cortex-m4 \
-mthumb -mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-g2 \
-Wall \
-O0 \
-c \
-DSTM32F4XX \
-DUSE_STDPERIPH_DRIVER \
-D__ASSEMBLY__ \
-DSTM32F429_439xx \
-DARM_MATH_CM4 \
-D__FPU_USED \
-D__FPU_PRESENT=1 \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/include \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib \
-I../STM32F429-Disco_FreeRTSOS/src ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/oszi.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_sdram.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_cfft_radix4_f32.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_dma2d.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_common_tables.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_rfft_f32.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_i2c3.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_usart.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/fft.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_ltdc.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot/startup/startup_stm32f4xx.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_led.c ../STM32F429-Disco_FreeRTSOS/src/App/main.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_rcc.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_rfft_init_f32.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_adc.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_systick.c ../STM32F429-Disco_FreeRTSOS/src/Drivers/stdio/printf.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_button.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/font/ub_font_arial_7x10.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_uart.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_cmplx_mag_f32.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_graphic2d.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/menu.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_lcd_ili9341.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/bilder/GUI1.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_gpio.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_font.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot/system_stm32f4xx.c ../STM32F429-Disco_FreeRTSOS/src/Syscalls/syscalls.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_spi5.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/bilder/GUI2.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_dma.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib/adc.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_fmc.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_spi.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_i2c.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/misc.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_touch_stmpe811.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_max_f32.c ../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib/arm_cfft_radix4_init_f32.c ../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source/stm32f4xx_tim.c
 

Для проекта QBS
Код
Bash
/usr/bin/arm-none-eabi-gcc \
-g \
-O0 \
-Wall \
-Wextra \
-pipe \
-fvisibility=default \
-mcpu=cortex-m4 \
-mthumb -mfpu=fpv4-sp-d16 \
-mfloat-abi=softfp \
-g2 \
-O0 \
-w \
-std=c99 \
-c \
-DSTM32F4XX \
-DSTM32F429ZI \
-DUSE_STDPERIPH_DRIVER \
-D__ASSEMBLY__ \
-DSTM32F429_439xx \
-DARM_MATH_CM4 \
-std=gnu99 \
-DSTM32F4XX \
-DUSE_STDPERIPH_DRIVER \
-DHSE_VALUE=180000000 \
-DDEBUG \
-I../STM32F429-Disco_FreeRTSOS/src/App \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/fft_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/bilder \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/font \
-I../STM32F429-Disco_FreeRTSOS/src/AppLib/uboszi_lib \
-I../STM32F429-Disco_FreeRTSOS/src/Drivers \
-I../STM32F429-Disco_FreeRTSOS/src/Drivers/stdio \
-I../STM32F429-Disco_FreeRTSOS/src/Libs \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_boot/startup \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/include \
-I../STM32F429-Disco_FreeRTSOS/src/Libs/cmsis_lib/source \
-I../STM32F429-Disco_FreeRTSOS/src/Syscalls \
-c ../STM32F429-Disco_FreeRTSOS/src/AppLib/ub_lib/stm32_ub_led.c \
-o ../build-STM32F429ZI-Discovery-STM32-Debug/qtc_STM32_041964a9-debug/stm32f429.qtc-STM32-041964a9.801cf937/.obj/d67faf4c2e97d91e/stm32_ub_led.c.o
и аналогичная команда для других c-файлов.
27  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 23, 2016, 20:51
Хорошо, попробую примеры.

Мне непонятно только:
Почему один и тот же компилятор (физически один исполняемый файл) таки создает рабочий код, если ему подсунуть команды компиялции и линковки с опциями компилятора от Coocox, и не создает, если те же опции компилятора прописать в QBS.
28  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 22, 2016, 11:41
Проект не мой вообще.
Ссылку на сам проект я дал в первом сообщении. QBS-файлы выложил. Думал, что будет достаточно. Грустный

Файл во вложении. Не смотря на присутсвие в названии FreeRTOS, ее там нет. Просто распаковал проект в папку с таким названием.

Опции компиятора брал из проект под Coocox.

"HSE_VALUE=168000000" - это от импортированного QBS проекта для STM32F407-Discovery
Для STM32F103RET я использую 72000000 Гц. Там все собирается в QBS и работает, включая отладку в Qt-Creator.

"Не работает" тут как повезет, может вообше не запуститься, но чаще всего зависает сразу после того как два раза мигнут светодиодом.

Проект настраивал по этому руководству.
29  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 22, 2016, 08:25
Нашел, куда QBS пишет map-файл
Во вложении:
stm32f429.map - созлданный ручным процессом компилирования и линковки
stm32f429_qbs.map - созлданный QBS
stm32f429_qbs_clear.map -  - созлданный QBS и приведенный к виду по путям к файлов, как в мапе ручной сборки
map.diff - сравнение stm32f429.map и stm32f429_qbs_clear.map
30  Qt / Qt Embedded / Re: Настройки QBS для сборки под STM32f429I-DISCO : Март 21, 2016, 12:36
Да вроде он в опциях линковки есть
Код
Javascript
cpp.linkerFlags: [
       "-mcpu=cortex-m4",
       "-mthumb",
       "-g2",
       "-nostartfiles",
       "-Wl,-Map=stm32f429.map",
       "-O0",
       "-Wl,--gc-sections",
       "-lm",
       "-lgcc",
       "-lc",
       "-mfpu=fpv4-sp-d16",
       "-mfloat-abi=softfp"
   ]

QBS почему-то не отображает саму команду линковки и процесс ее выполнения в Qt-Creator.

Цитировать
Применяется последнее значение.
Спасибо, буду знать. Улыбающийся
Страниц: 1 [2] 3

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