2016-12-26 3 views
0

У меня есть каталог:как экспортировать переменную правильно SConstript

src 
    sconscript 
    main 
     sconstruct 
     main.cpp 

В sconscript, я пишу

env=Environment(CXX='g++',LINK='g++') 

В sconstruct, я пишу

SConscript('../sconscript',exports='env') 
Import('env') 
env.Program(target='a.out',source='main.cpp') 

А потом Я иду в каталог src/main и тип scons -Q, он просто жалуется:

Export of non-existent variable ''env'' 

От http://scons.org/doc/HTML/scons-user.html#idm139837640372096, я думаю, что синтаксис верен. Так в чем проблема?

Я использую Ubuntu 16.04, Python 2.7.12 и 2.5.0 SCons

ответ

0

Ваш SConscript следует читать

env=Environment(CXX='g++',LINK='g++') 
Return('env') 

Ваш SConstruct следует читать

env = SConscript('../sconscript') 
env.Program(target='a.out',source='main.cpp') 

Посмотрите на страницы руководства : http://scons.org/doc/production/HTML/scons-man.html

+0

Спасибо. Оно работает. Но мой оригинальный код scons точно следует за руководством пользователя scons, вы знаете, почему он не работает? – ken

+0

@ken Я смотрю раздел, с которым вы связались, и это действительно не соответствует руководству пользователей. «Как только переменная экспортирована из вызывающего файла SConscript, ее можно использовать в других файлах SConscript, вызвав функцию импорта: – bdbaddog