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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QBS при использовании параметра @cpp.executableSuffix: ".elf"@ вызывает gcc.elf  (Прочитано 4572 раз)
ЙадоФитый ПлюсЧ
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
« : Март 02, 2016, 13:20 »

Добрый день!

Программирую микроконтроллер STM32.
За основу шаблона QBS был взят этот проект.
Пока строка
Код:
cpp.executableSuffix: ".elf"
закомментированна, проект собирается, заливается в контроллер и нормально отлаживается.
Но сам исполняемый файл не имеет расширения elf, хотя таковым является.
Стоит ранее указанную строку раскомментировать, так при сборке вылетает ошибка:
Код:
:-1: ошибка: The process '/usr/bin/arm-none-eabi-gcc.elf' could not be started: No such file or directory. The full command line invocation was: /usr/bin/arm-none-eabi-gcc.elf -g -O0 -Wall -Wextra -pipe -fvisibility=default -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -std=gnu99 -DSTM32F10X -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=72000000 -DDEBUG -I/home/yamah/Develop/RGB_1/src/app -I/home/yamah/Develop/RGB_1/src/app/WS2812B -I/home/yamah/Develop/RGB_1/src/app/WS2812B/stm32f10x-ws2812b-lib -I/home/yamah/Develop/RGB_1/src/app/WS2812B/stm32f10x-ws2812b-lib/inc -I/home/yamah/Develop/RGB_1/src/app/WS2812B/stm32f10x-ws2812b-lib/src -I/home/yamah/Develop/RGB_1/src/libs -I/home/yamah/Develop/RGB_1/src/libs/cmsis -I/home/yamah/Develop/RGB_1/src/libs/cmsis_boot -I/home/yamah/Develop/RGB_1/src/libs/cmsis_boot/startup -I/home/yamah/Develop/RGB_1/src/libs/stm_lib -I/home/yamah/Develop/RGB_1/src/libs/stm_lib/inc -I/home/yamah/Develop/RGB_1/src/libs/stm_lib/src -c /home/yamah/Develop/RGB_1/src/libs/stm_lib/src/stm32f10x_tim.c -o /home/yamah/Develop/build-RGB_1-STM32-Debug/qtc_STM32_041964a9-debug/WS2812B-Leds.qtc-STM32-041964a9.7c4124ca/.obj/5f882ab4efb782e7/stm32f10x_tim.c.o
То есть, qbs зачем-то к имени компилятора подставляет расширение elf.

Если создать симлинк /usr/bin/arm-none-eabi-gcc.elf на /usr/bin/arm-none-eabi-gcc, то все нормально собирается, включая расширение исполняемонго файла проекта. Но это не правильный путь. Улыбающийся

Как сделать так. чтобы и исполняемый файл имел расширение elf и qbs не подставлял это расширение к компилятору?

OS: Rosa Linux
Qt 5.5.1 как истемная, так и Community.
Записан
ЙадоФитый ПлюсЧ
Новичок

Offline Offline

Сообщений: 40


Просмотр профиля
« Ответ #1 : Март 09, 2016, 09:30 »

Сам нашел где отлючается жобавление суффикса к компилятору.

В общем в файле /usr/share/qtcreator/qbs/share/qbs/modules/cpp/GenericGCC.qbs (в случае установки пакета из дистрибутива)
находим параметр
Код:
    property string cCompilerName: executablePrefix
                                   + (qbs.toolchain.contains("clang") ? "clang" : "gcc")
                                   + executableSuffix
и комментируем последню строку:
Код:
    property string cCompilerName: executablePrefix
                                   + (qbs.toolchain.contains("clang") ? "clang" : "gcc")
//                                   + executableSuffix
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #2 : Март 10, 2016, 11:29 »


Cтараюсь не лезть в файлы дистрибутива, поэтому, как вариант,  я просто самостоятельно формирую имя:
Код
Javascript
CppApplication {
       targetName:{
           var tn = project.name
           if(project.with_bootloader)
               tn = tn + "_bt"
           tn = tn + ".elf"
           return tn
       }
...
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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