SCons命令 之 从入门到精通
生活随笔
收集整理的這篇文章主要介紹了
SCons命令 之 从入门到精通
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SCons命令?之?從入門到精通
(2005-12-05 11:41:13) 轉載▼標簽: 雜談 | 分類:計算機與 Internet |
? Program('program', Split('main.c file1.c file2.c'))
2.Object('hello.c')編譯hello.c目標文件,根據系統自動生成(hello.obj on Windows; hello.o onPOSIX) 3.Library('foo', ['f1.c', 'f2.c','f3.c']) 編譯library ? SharedLibrary('foo', ['f1.c','f2.c', 'f3.c']) 編譯 static library ? StaticLibrary('foo', ['f1.c','f2.c', 'f3.c']) 編譯 shared library
4.Program('prog.c', LIBS=['foo', 'bar'], LIBPATH='.')連接庫,不需加后綴或是前綴
5.判斷源文件是否修改 ? SourceSignatures('MD5')????根據內容是否改變,默認方式 ? SourceSignatures('timestamp') 根據修改時間
6.判斷目標文件是否改變 ? TargetSignatures('build')??根據編譯結果
?? TargetSignatures('content')?根據文件內容,如果只是加了句注釋,將不會被重新編譯 7.Ignore(hello, 'hello.h')? 忽略某個依賴關系
8.Depends(hello, 'other_file') 明確依賴關系
? Executive command in shell 1. scons -c??clean 2. scons -Q?只顯示編譯信息,去除多余的打印信息 3. scons -Q--implicit-cache hello 保存依賴關系 ???????????????--implicit-deps-changed??強制更新依賴關系 ??????????????--implicit-deps-unchanged?強制使用原先的依賴關系,即使已經改變 ? Key words: LIBS LIBPATH CCFLAGS CPPPATH :Program('hello.c', CPPPATH =['include', '/home/project/inc']) Concept: 1.Node Objects???文件或是目錄 ?? hello_c =File('hello.c') ??Program(hello_c)????????????????File Node Objects ?? classes =Dir('classes') ?? Java(classes,'src')???????????????Directory Node Objects
?
?? xyzzy =Entry('xyzzy')??????????Either File or Directory Node Objects
1.創建環境變量 ?? env = Environment() ??env.Program('foo.c')???????根據不同系統創建不同的編譯環境變量 ?? 也可以改變: ?? env = Environment(CC = 'gcc',CCFLAGS ='-O2')
2.復制環境變量 ?? env = Environment(CC = 'gcc') ?? opt = env.Copy(CCFLAGS = '-O2')
??? dbg = env.Copy(CCFLAGS = '-g')
3.獲取環境變量 ?? env = Environment() ?? print "CC is:",env['CC']
4.擴展環境變量 ?? env = Environment()
??? print "CC is:",env.subst('$CC') 5.替換環境變量 ?? env = Environment(CCFLAGS ='-DDEFINE1')
????env.Replace(CCFLAGS = '-DDEFINE2')
????env.Program('foo.c') 6.尾部增加環境變量值 ?? env = Environment(CCFLAGS ='-DMY_VALUE')
????env.Append(CCFLAGS = ' -DLAST')
????env.Program('foo.c') 7.頭部添加環境變量值 ?? env = Environment(CCFLAGS ='-DMY_VALUE')
??? env.Prepend(CCFLAGS = '-DFIRST ')
??? env.Program('foo.c') 使用 1.看編譯命令未展開 Input: ??? env = Environment(CCFLAGS ='-DFOO')
???? print "CCCOM is:",env['CCCOM'] Output: ??? CCCOM is: $CC$CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o $TARGET$SOURCES
2.看編譯命令已展開 Input: ?? env = Environment(CCFLAGS = '-DFOO')
????print "CCCOM is:",env.subst('$CCCOM') Output: ? ?? CCCOM is: gcc -DFOO -c-o
總結
以上是生活随笔為你收集整理的SCons命令 之 从入门到精通的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这些21个不太好搜索其含义的特殊符号你都
- 下一篇: Madagascar环境下编程