SCons命令 之 从入门到精通
生活随笔
收集整理的這篇文章主要介紹了
SCons命令 之 从入门到精通
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SCons命令?之?從入門(mén)到精通
(2005-12-05 11:41:13) 轉(zhuǎn)載▼標(biāo)簽: 雜談 | 分類(lèi):計(jì)算機(jī)與 Internet |
? Program('program', Split('main.c file1.c file2.c'))
2.Object('hello.c')編譯hello.c目標(biāo)文件,根據(jù)系統(tǒng)自動(dòng)生成(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='.')連接庫(kù),不需加后綴或是前綴
5.判斷源文件是否修改 ? SourceSignatures('MD5')????根據(jù)內(nèi)容是否改變,默認(rèn)方式 ? SourceSignatures('timestamp') 根據(jù)修改時(shí)間
6.判斷目標(biāo)文件是否改變 ? TargetSignatures('build')??根據(jù)編譯結(jié)果
?? TargetSignatures('content')?根據(jù)文件內(nèi)容,如果只是加了句注釋,將不會(huì)被重新編譯 7.Ignore(hello, 'hello.h')? 忽略某個(gè)依賴(lài)關(guān)系
8.Depends(hello, 'other_file') 明確依賴(lài)關(guān)系
? Executive command in shell 1. scons -c??clean 2. scons -Q?只顯示編譯信息,去除多余的打印信息 3. scons -Q--implicit-cache hello 保存依賴(lài)關(guān)系 ???????????????--implicit-deps-changed??強(qiáng)制更新依賴(lài)關(guān)系 ??????????????--implicit-deps-unchanged?強(qiáng)制使用原先的依賴(lài)關(guān)系,即使已經(jīng)改變 ? 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.創(chuàng)建環(huán)境變量 ?? env = Environment() ??env.Program('foo.c')???????根據(jù)不同系統(tǒng)創(chuàng)建不同的編譯環(huán)境變量 ?? 也可以改變: ?? env = Environment(CC = 'gcc',CCFLAGS ='-O2')
2.復(fù)制環(huán)境變量 ?? env = Environment(CC = 'gcc') ?? opt = env.Copy(CCFLAGS = '-O2')
??? dbg = env.Copy(CCFLAGS = '-g')
3.獲取環(huán)境變量 ?? env = Environment() ?? print "CC is:",env['CC']
4.擴(kuò)展環(huán)境變量 ?? env = Environment()
??? print "CC is:",env.subst('$CC') 5.替換環(huán)境變量 ?? env = Environment(CCFLAGS ='-DDEFINE1')
????env.Replace(CCFLAGS = '-DDEFINE2')
????env.Program('foo.c') 6.尾部增加環(huán)境變量值 ?? env = Environment(CCFLAGS ='-DMY_VALUE')
????env.Append(CCFLAGS = ' -DLAST')
????env.Program('foo.c') 7.頭部添加環(huán)境變量值 ?? env = Environment(CCFLAGS ='-DMY_VALUE')
??? env.Prepend(CCFLAGS = '-DFIRST ')
??? env.Program('foo.c') 使用 1.看編譯命令未展開(kāi) Input: ??? env = Environment(CCFLAGS ='-DFOO')
???? print "CCCOM is:",env['CCCOM'] Output: ??? CCCOM is: $CC$CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o $TARGET$SOURCES
2.看編譯命令已展開(kāi) Input: ?? env = Environment(CCFLAGS = '-DFOO')
????print "CCCOM is:",env.subst('$CCCOM') Output: ? ?? CCCOM is: gcc -DFOO -c-o
總結(jié)
以上是生活随笔為你收集整理的SCons命令 之 从入门到精通的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 这些21个不太好搜索其含义的特殊符号你都
- 下一篇: Madagascar环境下编程