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

 
 
> вопросы по 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
Ответов
Непомнящий Евген...
сообщение May 13 2008, 12:26
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Моя функция для создания environment под IAR
Код
from os.path import join
import os
import sys
import string
sys.path = [ join(sys.prefix, 'Lib', 'site-packages', 'scons-0.97.0d20071212')] + sys.path
from SCons.Environment import Environment

def EnvironmentIAR (iarDir, linkerDefs, numOfAddTargets = 0):
  env = Environment(ENV = os.environ)  
  PROC_DIR = iarDir + r'/avr'
  LINKER_DIR = iarDir + r'/common/bin'
  
  env['OBJSUFFIX'] = '.r90'
  env['PROGSUFFIX'] = '.hex'
  env['PROC_DIR'] = PROC_DIR
  env['CPPPATH'] = ['$PROC_DIR/INC', '$PROC_DIR/INC/$LIB']  
  env['CC_DIR'] = '"' + PROC_DIR + '"'
  env['CC'] = '"' + PROC_DIR + '/bin/iccavr.exe"'
  env['CXXCOM'] = '$CXX $SOURCES $CCCOMFLAGS $CXXFLAGS'
  env['CCCOM'] = env['CXXCOM']
  env['LIBOBJFILE'] = '$CC_DIR\LIB\$LIB\$($LIBFILE$).h'
  env['CXXFLAGS'] = r"--silent --cpu=$CPU -m$MEMORY_MODEL --no_wrap_diagnostics -y" + \
                  "  -e --debug --initializers_in_flash -$OPT --eeprom_size $EEPROM_SIZE -DENABLE_BIT_DEFINITIONS" + \
                  " $LANGUAGE --dlib_config $LIBOBJFILE -o $TARGET $OBJLIST $CXXADDFLAGS"
  env['CCCOMFLAGS'] = '$CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS'
  env['INCPREFIX'] = '-I '
  env['CCCOMSTR'] = 'Compiling $SOURCE -> $TARGET ...'
  env['CXXCOMSTR'] = env['CCCOMSTR']
  
  env['LINK'] = '"' + LINKER_DIR + '\\xlink.exe"'
  env['LINK_LIB'] = '"%s\\LIB\\$LIB\\$($LIBFILE$).r90"' % (PROC_DIR)
  
  targets = '-o $TARGET -F$OUT1_FORMAT '
  for i in xrange(numOfAddTargets):
      targets += '-O$OUT%d_FORMAT=$($TARGET$)$OUT%d_EXT' % (i+2, i+2)
  env['_TARGETS'] = targets
  
  env['LIST'] = '-l $($TARGET$).html -x$LIST_FORMAT'
  env['INCLUDE'] = ''

  segments = ''
  for s in string.split(linkerDefs):
      if s[0] == '@':
       segments += '-f "%s\\src\\template\\%s" ' % (PROC_DIR, s[1:])
      else:
       segments += s + ' '
  env['SEGMENTS'] = segments
  
  env['PROG_START'] = '-s __program_start'
  env['LINKCOM'] = '$LINK $SOURCES $LINK_LIB $_TARGETS $LIST $INCLUDE $SEGMENTS $PROG_START'
  env['LINKCOMSTR'] = "Linking $TARGET"
  
  return env


linkerDefs - это строка, примерно такая
linker_defs128 = '''
@cfgm128.xcl
-D_..X_HEAP_SIZE=0
-D_..X_TINY_HEAP_SIZE=0
-D_..X_NEAR_HEAP_SIZE=0
-D_..X_FAR_HEAP_SIZE=0
-D_..X_HUGE_HEAP_SIZE=0
-D_..X_CSTACK_SIZE=$CSTACK
-D_..X_RSTACK_SIZE=$RSTACK
@cfg3s.xcl
-D_..X_FLASH_BASE=_..X_INTVEC_SIZE
-H1895
-h(CODE)0-(_..X_INTVEC_SIZE-1)
-D_..X_EXT_SRAM_BASE=_..X_SRAM_END
-D_..X_EXT_SRAM_SIZE=0
-D_..X_EXT_ROM_BASE=_..X_SRAM_END
-D_..X_EXT_ROM_SIZE=0
-D_..X_EXT_NV_BASE=_..X_SRAM_END
-D_..X_EXT_NV_SIZE=0
-D_..X_CSTACK_BASE=_..X_SRAM_BASE
-D_..X_CSTACK_END=_..X_SRAM_END
-D_..X_RSTACK_BASE=_..X_SRAM_BASE
-D_..X_RSTACK_END=_..X_SRAM_END
'''
Вместо @ подставится путь к файлу

Юзать примерно так:
Код
env = EnvironmentIAR(os.environ['IAR'], ut.linker_defs128, 1)

# директивы компилятора
env['CPU'] = 'm128'
env['MEMORY_MODEL'] = 'small'
env['OPT'] = 's9'
env['EEPROM_SIZE'] = 4096
env['LANGUAGE'] = '--eec++'
env['OUT1_FORMAT'] = 'intel-extended'
env['OUT2_FORMAT'] = 'ubrof8'
env['OUT2_EXT'] = '.dbg'
env['LIST_FORMAT'] = 'msniohe'
env['CSTACK'] = 150
env['RSTACK'] = 'BE'
env['OBJLIST'] = "-lCN build\\list\\"
env['LIB'] = 'dlib'
env['LIBFILE'] = 'dlAVR-3s-ec_mul-n'
env['DEF_VAR'] = defVar
env['CXXADDFLAGS'] = '--preinclude sources/preinc103mk1.h'
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
- - 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 Текстовая версия Сейчас: 30th July 2025 - 18:30
Рейтинг@Mail.ru


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