реклама на сайте
подробности

 
 
> вопросы по scons
umup
сообщение May 1 2008, 14:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 2-06-06
Пользователь №: 17 720



создал Sconscript :

Код
import os

env = Environment(ENV = os.environ, tools=['mingw'])
env['ENV']['PATH'] = 'c:\\gcc\\win32\\bin;' + os.environ['PATH']

env.Object(source = 'test_01.c', target = 'out/test_01.o')
env.Program(source = 'out/test_01.o', target = 'out/test_01.exe')


1) как одним параметром указать, в какую папку должны помещаться выходные файлы (чтобы не замусоривать папку с исходниками - нужно скомпилировать в локальную папку out/) ?

2) как заставить scite показать вывод из gcc ?

добавил в cpp.properties :
command.build.*.c=scons.py

компиляция выполняется, но сообщения об ошибках из gcc не показываются в окне Output scite :
Код
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o out\test_01.o -c test_01.c
scons: *** [out\test_01.o] Error 1
scons: building terminated because of errors.
>Exit code: 2


а должно быть (при компиляции из ком.строки) :
Код
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o out\test_01.o -c test_01.c
test_01.c: In function 'main':
test_01.c:6: error: 's' undeclared (first use in this function)
test_01.c:6: error: (Each undeclared identifier is reported only once
test_01.c:6: error: for each function it appears in.)
test_01.c:6: error: expected ')' before string constant
scons: *** [out\test_01.o] Error 1
scons: building terminated because of errors.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AKimbo
сообщение May 22 2008, 14:01
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 26-10-06
Пользователь №: 21 675



Вопрос к вам, DXP.
Есть ли способ заставить функцию Builder'а запускающую линкер, выполнять пересборку при изменении не только списка sources, но и некоторого постороннего файла? Имеется в виду файл конфигурации Линкера *.icf. Можно , конечно, отслеживать это своей функцией запускающей скрипт с опцией rebuild, но как- то это не красиво.
Изменил ваш скрипт под свои нужды + IAR EWARM 5.0, если разрешите - могу выложить.
Go to the top of the page
 
+Quote Post
dxp
сообщение May 23 2008, 03:56
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(AKimbo @ May 22 2008, 21:01) *
Есть ли способ заставить функцию Builder'а запускающую линкер, выполнять пересборку при изменении не только списка sources, но и некоторого постороннего файла? Имеется в виду файл конфигурации Линкера *.icf. Можно , конечно, отслеживать это своей функцией запускающей скрипт с опцией rebuild, но как- то это не красиво.

Вижу тут два варианта. Можно этот файл включить в список зависимостей, но тогда внутри функции билдера придется делать разбор списка и формировать отдельно список объектников и отфильтровывать его от конфигов. В принципе, это несложно, список все равно там формируется - в том же цикле проверять имя файла и пропускать файлы конфигов и все остальные, кто не объектные.

Второй вариант - сделать другой билдер, который будет зависеть от конфигов. Но ему придется передавать тогда как-то список объектников. Наверное, первый вариант проще.

Цитата(AKimbo @ May 22 2008, 21:01) *
Изменил ваш скрипт под свои нужды + IAR EWARM 5.0, если разрешите - могу выложить.

Это сколько угодно. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AKimbo
сообщение May 23 2008, 13:57
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 26-10-06
Пользователь №: 21 675



Цитата(dxp @ May 23 2008, 07:56) *
...Можно этот файл включить в список зависимостей, но тогда внутри функции билдера придется делать разбор списка и формировать отдельно список объектников и отфильтровывать его от конфигов.

Так и сделал - конфиг. файл добавляю последним элементом в список sources и при разборе внутри action функции он отфильтровывается.

Итак, в приложении вариант сборщика на основе скрипта DXP. Основные моменты и принципы остались без изменения, адаптирован под IAR EWARM5.0.

Отличия:
Переваривает исходники *.c а не *.cpp
Другие ключики ассемблера/компилятора/линкера
Добавлена директория Config для конфиг. линкера *.icf, отслеживает его изменения при сборке.
Две набора ключей линкера - debug и release.
Создает два выходных файла формата ELF/DWARF - основной *.out и для отладки *.dbg
Конвертирует выходной *.out посредством утилитки Objcopy в *.hex и *.bin

Замечания:
Контрольную сумму в *.hex и *.bin не добавляет, не проблема если отладчик/загрузчик делает это сам.
Протестировано на проекте C+ASM, собирается и работает нормально.
Прикрепленные файлы
Прикрепленный файл  SConstruct.rar ( 2.71 килобайт ) Кол-во скачиваний: 63
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- umup   вопросы по scons   May 1 2008, 14:55
- - dxp   Цитата(umup @ May 1 2008, 21:55) создал S...   May 2 2008, 11:05
- - Непомнящий Евгений   Цитата(umup @ May 1 2008, 18:55) 1) как о...   May 4 2008, 04:12
- - umup   ЦитатаА что у вас за версия scons scons 0.98.2 sci...   May 6 2008, 15:11
|- - Непомнящий Евгений   Цитата(umup @ May 6 2008, 19:11) еще scit...   May 7 2008, 04:08
- - AKimbo   Знатоки scons'а, помогите рабочим примером скр...   May 13 2008, 11:50
|- - dxp   Цитата(AKimbo @ May 13 2008, 18:50) Знато...   May 13 2008, 12:27
|- - AKimbo   Спасибо всем, очень помогли. Теперь уход с IAR IDE...   May 19 2008, 11:58
- - Непомнящий Евгений   Моя функция для создания environment под IAR Кодfr...   May 13 2008, 12:26
|- - dxp   Цитата(AKimbo @ May 23 2008, 20:57) ... ...   May 24 2008, 12:26
|- - AKimbo   Цитата(dxp @ May 24 2008, 16:26) ... Зави...   May 26 2008, 08:33
- - Fat Robot   Чтобы не плодить тем: 12 August 2008 SCons 1.0.0 ...   Aug 17 2008, 19:51


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016