Почему мои определения subdirs в scons не работает?

Я начинаю использовать scons для добавления нового подкаталога и его SConscript. Но я обнаружил, что мой SConscript не может быть прочитан в корневой SConscript, я не знаю почему. Я что-то пропустил?

Файлы Scons в моем проекте таковы:

project-root
 - SConstruct
 - Sconscript
 + supportlib
    - SConscript (returning library target)
    + src
       - ...
 + Program
    - SConsctipt (importing library target)
    + src
       - ...

SConscript корня как показано ниже:

subdirs = [..., AAAA]
SConscript(dirs = subdirs, exports='env')

В подкаталоге AAAA у меня есть файл SConscript. Но scons не читает этот файл SConscript в каталоге AAAA. Его журнал как ниже:

scons: Reading SConscript files ...
...
Enable AAAA:        True
...
scons: warning: Two different environments were specified for target dummy_register_server.o,
        but they appear to have the same action: $CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES
File "/root/workspace/xorp.ct/xorp/site_scons/site_tools/autotest.py", line 85, in _UnitTest

scons: warning: Two different environments were specified for target /root/workspace/xorp.ct/xorp/obj/i686-pc-linux-gnu/rib/parser.o,
        but they appear to have the same action: $CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES
File "/root/workspace/xorp.ct/xorp/site_scons/site_tools/autotest.py", line 85, in _UnitTest

scons: warning: Two different environments were specified for target dummy_register_server.o,
        but they appear to have the same action: $CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES
File "/root/workspace/xorp.ct/xorp/site_scons/site_tools/autotest.py", line 85, in _UnitTest

scons: warning: Two different environments were specified for target aspath.os,
        but they appear to have the same action: $SHCXX -o $TARGET -c $SHCXXFLAGS $SHCCFLAGS $_CCCOMCOM $SOURCES
File "/root/workspace/xorp.ct/xorp/bgp/SConscript", line 169, in <module>
...
scons: done reading SConscript files.
scons: Building targets ...
scons: every thing is up to date. ***# but there is no AAAA target report.***
scons: done building targets.

1 ответ

Ваше файловое дерево не показывает, где находится папка AAAA, и определение AAAA в вашей SConstruct верхнего уровня тоже неясно (это строка или определено как-то еще?). Это делает невозможным угадать, что не так. В любом случае, я рекомендую взглянуть на официальную документацию в форме руководства пользователя ( http://www.scons.org/doc/production/HTML/scons-user.html) и следовать базовой настройке, как описано в гл. 14 "Иерархические сборки".

Другие вопросы по тегам