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

 
 
> вопросы по 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 13 2008, 11:50
Сообщение #2


Участник
*

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



Знатоки scons'а, помогите рабочим примером скрипта использующего tool отличный от идущих в комплекте. Интересует, собственно, где задаются пути к используемым компилятору/линкеру. Если можно, направьте в правильном направлении - хочу для сборки проекта использовать IAR'овские компилятор/линкер.
Go to the top of the page
 
+Quote Post
dxp
сообщение May 13 2008, 12:27
Сообщение #3


Adept
******

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



Цитата(AKimbo @ May 13 2008, 18:50) *
Знатоки scons'а, помогите рабочим примером скрипта использующего tool отличный от идущих в комплекте. Интересует, собственно, где задаются пути к используемым компилятору/линкеру. Если можно, направьте в правильном направлении - хочу для сборки проекта использовать IAR'овские компилятор/линкер.

Все просто, там не столько сконсовское, сколько питоновое. Сначала можно задать тулзы и пути, например, так:

Код
#-------------------------------------------------------------------------------
#
#      Toolkit
#
IAR = os.environ['IAR']
TOOLKIT_PATH = IAR + '\\EW430v410'

ASM    = TOOLKIT_PATH + '\\430\\bin\\a430.exe'
CC     = TOOLKIT_PATH + '\\430\\bin\\icc430.exe'
Linker = TOOLKIT_PATH + '\\430\\bin\\xlink.exe'

ToolkitIncPath = [TOOLKIT_PATH + '\\430\\inc',  
                  TOOLKIT_PATH + '\\430\\inc\\dlib']

ToolkitLibPath = [TOOLKIT_PATH + '\\430\\lib\\dlib']
ToolkitCfgPath = [TOOLKIT_PATH + '\\430\\config']


Для чего через переменную окружения IAR, думаю, понятно - чтобы не привязываться к абсолютным путям на конкретной машине.

Затем задать тулзы в рабочем словаре env:

Код
env = Environment(TOOLS = {})

env['BUILDERS'] = { 'asmObj' : asm2obj, 'cppObj' : cpp2obj, 'Exe' : build_exe }
env['ASM'        ] = ASM
env['CC'         ] = CC
env['LINKER'     ] = Linker
env['AFLAGS'     ] = AFLAGS
env['CFLAGS'     ] = CFLAGS
env['LFLAGS'     ] = LFLAGS
env['CPPPATH'    ] = SourceDirs + ToolkitIncPath
env['FIRST_ENTRY'] = FirstEntry


Пример функции-билдера уже приводил. Полный скрипт во вложении. Это для EW430. Аналогичный есть для EWAVR и для Blackfin (VisualDSP++ 4.5).

Комментарий.
Скрипт строит список файлов с расширенями с, срр и ассемблера, находящихся в директориях, указанных в списке SourceDirs, и на основе этого списка производит сборку проекта. Т.е. если надо добавить файл в проект, достаточно положить его в одну из указанных директорий (если убрать из проекта - соответственно, удалить из директории либо изменить расширение). Поддерживаются мнимые цели clean и rebuild. Скрипт работает со структурой проекта (директории):

Config - скрипты линкера и подобное
Exe - исполняемые (hex и дебажный бинарник)
List - листинги и map файл линкера
Obj - объектные файлы

Если этих директорий не существует, скрипт при первом запуске создает их - чтобы тулзам было куда складывать продукты генерации. Получается аккуратно и удобно.

Успехов.
Прикрепленные файлы
Прикрепленный файл  SConstruct.rar ( 2.42 килобайт ) Кол-во скачиваний: 101
 


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


Участник
*

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



Спасибо всем, очень помогли. Теперь уход с IAR IDE будет менее болезненным. Если вы, DXP, не против - я позаимствую ваш скрипт, с минимальными изменениями. Понимать Питон понимаю, но вот самому написать пока слабо - ничего сложнее парсеров текста писать не приходилось. Но мощь и легкость применения еще как чувствуются.
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
- - Непомнящий Евгений   Моя функция для создания environment под IAR Кодfr...   May 13 2008, 12:26
- - AKimbo   Вопрос к вам, DXP. Есть ли способ заставить функц...   May 22 2008, 14:01
|- - dxp   Цитата(AKimbo @ May 22 2008, 21:01) Есть ...   May 23 2008, 03:56
|- - AKimbo   Цитата(dxp @ May 23 2008, 07:56) ...Можно...   May 23 2008, 13:57
|- - 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 Текстовая версия Сейчас: 21st July 2025 - 16:04
Рейтинг@Mail.ru


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