Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2008 01:28:28

umup
От:
Зарегистрирован: 2007-07-14
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

scons + mingw

как в scons скомпилировать файл с помощью mingw ?

создал такой SConstruct :


import os

env = Environment(ENV = os.environ)
env.Tool('mingw')
env = ‘c:\\gcc\\win32\\bin;’ + os.environ

print env

env.Program('test_01.c')



выход :

scons: done reading SConscript files.
scons: Building targets ...
gcc -o test_01.o -c /nologo test_01.c
gcc: /nologo: No such file or directory
scons: *** [test_01.o] Error 1
scons: building terminated because of errors.
видно что вставляет какое-то /nologo.
как отключить ?

консольными командами gcc -c, gcc файл компилируется/линкуется нормально.



Офлайн

#2 Апрель 30, 2008 10:47:15

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

scons + mingw

/nologo – это ключ для линкера VC++. Чета у вас gcc вызывается как VC++.



Офлайн

#3 Апрель 30, 2008 10:49:58

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

scons + mingw

нужно изменить используемые тулзы, помоему как-то так (не уверен):

env = ‘mingw’

надо доку читать.



Офлайн

#4 Апрель 30, 2008 11:41:51

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

scons + mingw

у меня так всё собералось как надо:


env = Environment (

tools =

)



Офлайн

#5 Апрель 30, 2008 13:02:36

umup
От:
Зарегистрирован: 2007-07-14
Сообщения: 53
Репутация: +  0  -
Профиль   Отправить e-mail  

scons + mingw

поправил, так компилируется :


import os

env = Environment(ENV = os.environ, tools=)
env = ‘c:\\gcc\\win32\\bin;’ + os.environ

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.



Отредактировано (Апрель 30, 2008 13:13:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version