Я хочу сказать, что scons, когда я изменил один заголовочный файл, не перекомпилировал мой исходный файл (это только мой тест!) I ' ве получил hello.c файл:Scons не вычисляет правильные «ParseDepends» или «Ignore», как я указал
#ifdef FOO
#include"~/headers/n.h"
#endif
#include<stdio.h>
int main(){
printf("hello\n");
return 2;
}
И мой файл SConstruct является:
obj=Object('hello.c')
SideEffect('hello.d',obj)
ParseDepends('hello.d')
Program('hello',obj)
Вы видите, я не определите "Foo", поэтому файл hello.c не использует мой .h файл вообще. Я также ожидаю, что ParseDepends сможет прочитать команду C-preprocessor, чтобы игнорировать мой #include «n.h», потому что не определено «FOO».
Но при запуске SCons, а затем изменить файл NH, работает SCons снова будет инициировать перестроение hello.c
Затем я попытался использовать «Игнорировать» заявление, как показано ниже:
hello_obj=Object('hello.c')
hello=Program(hello_obj)
Ignore(hello_obj,'n.h')
Ну я получил тот же результат теста: изменение внутри nh не игнорируется scons! Почему?
И почему вы это проверяете? Что вы пытаетесь достичь? – dirkbaechle