亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bjam.qbk

?? Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
?? QBK
?? 第 1 頁 / 共 5 頁
字號:
for creating compiler response files, and other "internal" files. The expansionworks both during parsing and action execution. Hence it is possible to createfiles during any of the three build phases.[endsect][section:builtins Built-in Variables]This section discusses variables that have special meaning to =bjam=.[section:search SEARCH and LOCATE]These two variables control the binding of file target names to locations inthe file system. Generally, =$(SEARCH)= is used to find existing sourceswhile =$(LOCATE)= is used to fix the location for built targets.Rooted (absolute path) file targets are bound as is. Unrooted file target names are also normally bound as is, and thus relative to the current directory, but the settings of =$(LOCATE)= and =$(SEARCH)= alter this:* If =$(LOCATE)= is set then the target is bound relative to the first directory in =$(LOCATE)=. Only the first element is used for binding.* If =$(SEARCH)= is set then the target is bound to the first directory in =$(SEARCH)= where the target file already exists.* If the =$(SEARCH)= search fails, the target is bound relative to the current directory anyhow. Both =$(SEARCH)= and =$(LOCATE)= should be set target-specific and not globally. If they were set globally, =bjam= would use the same paths for all file binding, which is not likely to produce sane results. When writing your own rules, especially ones not built upon those in Jambase, you may need to set =$(SEARCH)= or =$(LOCATE)= directly. Almost all of the rules defined in Jambase set =$(SEARCH)= and =$(LOCATE)= to sensible values for sources they are looking for and targets they create, respectively.[endsect][section:hdrscan HDRSCAN and HDRRULE]These two variables control header file scanning. =$(HDRSCAN)= is an=egrep(1)= pattern, with ()'s surrounding the file name, used to find fileinclusion statements in source files. =Jambase= uses =$(HDRPATTERN)= as thepattern for =$(HDRSCAN)=. =$(HDRRULE)= is the name of a rule to invoke withthe results of the scan: the scanned file is the target, the found files arethe sources. This is the only place where =bjam= invokes a rule through avariable setting.Both =$(HDRSCAN)= and =$(HDRRULE)= must be set for header file scanning to take place, and they should be set target-specific and not globally. If they were set globally, all files, including executables and libraries, would be scanned for header file include statements.The scanning for header file inclusions is not exact, but it is at least dynamic, so there is no need to run something like =makedepend(GNU)= to create a static dependency file. The scanning mechanism errs on the side of inclusion (i.e., it is more likely to return filenames that are not actually used by the compiler than to miss include files) because it can't tell if `#include` lines are inside `#ifdefs` or other conditional logic. In =Jambase=, =HdrRule= applies the =NOCARE= rule to each header file found during scanning so that if the file isn't present yet doesn't cause the compilation to fail, =bjam= won't care.Also, scanning for regular expressions only works where the included file name is literally in the source file. It can't handle languages that allow including files using variable names (as the =Jam= language itself does). [endsect][section Semaphores]It is sometimes desirable to disallow parallel execution of some actions. For example:* Old versions of yacc use files with fixed names. So, running two yacc actions is dangerous.* One might want to perform parallel compiling, but not do parallel linking, because linking is i/o bound and only gets slower.Craig McPeeters has extended Perforce Jam to solve such problems, and that extension was integrated in Boost.Jam.Any target can be assigned a /semaphore/, by setting a variable called =SEMAPHORE= on that target. The value of the variable is the semaphore name. It must be different from names of any declared target, but is arbitrary otherwise.The semantic of semaphores is that in a group of targets which have the same semaphore, only one can be updated at the moment, regardless of "=-j=" option.[endsect][section Platform Identifier]A number of Jam built-in variables can be used to identify runtime platform:[variablelist[[=OS=]                     [OS identifier string]][[=OSPLAT=]                 [Underlying architecture, when applicable]][[=MAC=]                    [true on MAC platform]][[=NT=]                     [true on NT platform]][[=OS2=]                    [true on OS2 platform]][[=UNIX=]                   [true on Unix platforms]][[=VMS=]                    [true on VMS platform]]][endsect][section Jam Version][variablelist[[=JAMDATE=]                [Time and date at =bjam= start-up as an ISO-8601 UTC value.]][[=JAMUNAME=]               [Ouput of uname(1) command (Unix only)]][[=JAMVERSION=]             [=bjam= version, currently ":version:"]][[=JAM_VERSION=]            [A predefined global variable with two elements indicates the version number of Boost Jam. Boost Jam versions start at "=03=" "=00=". Earlier versions of =Jam= do not automatically define =JAM_VERSION=.]]][endsect][section JAMSHELL]When =bjam= executes a rule's action block, it forks and execs a shell, passing the action block as an argument to the shell. The invocation of the shell can be controlled by =$(JAMSHELL)=. The default on Unix is, for example:[preJAMSHELL = /bin/sh -c % ;]The =%= is replaced with the text of the action block.=BJam= does not directly support building in parallel across multiple hosts, since that is heavily dependent on the local environment. To build in parallel across multiple hosts, you need to write your own shell that provides access to the multiple hosts. You then reset =$(JAMSHELL)= to reference it.Just as =bjam= expands a =%= to be the text of the rule's action block, it expands a =!= to be the multi-process slot number. The slot number varies between 1 and the number of concurrent jobs permitted by the =-j= flag given on the command line. Armed with this, it is possible to write a multiple host shell. For example:[pre#!/bin/sh# This sample JAMSHELL uses the SunOS on(1) command to execute a# command string with an identical environment on another host.# Set JAMSHELL = jamshell ! %## where jamshell is the name of this shell file.## This version handles up to -j6; after that they get executed# locally.case $1 in1|4) on winken sh -c "$2";;2|5) on blinken sh -c "$2";;3|6) on nod sh -c "$2";;*) eval "$2";;esac][endsect][section:actionrule =__TIMING_RULE__= and =__ACTION_RULE__=]The =__TIMING_RULE__= and =__ACTION_RULE__= can be set to the name of a rulefor =bjam= to call *after* an action completes for a target. They both givediagnostic information about the action that completed. For =__TIMING_RULE__=the rule is called as:    rule timing-rule ( args * : target : start end user system )And =__ACTION_RULE__= is called as:    rule action-rule ( args * : target : command status start end user system : output ? )The arguments for both are:[variablelist    [[[^args]]        [Any values following the rule name in the =__TIMING_RULE__= or =__ACTION_RULE__=        are passed along here.]]    [[[^target]]        [The =bjam= target that was built.]]    [[[^command]]        [The text of the executed command in the action body.]]    [[[^status]]        [The integer result of the executed command.]]    [[[^start]]        [The starting timestamp of the executed command as a ISO-8601 UTC value.]]    [[[^end]]        [The completion timestamp of the executed command as a ISO-8601 UTC value.]]    [[[^user]]        [The number of user CPU seconds the executed command spent as a floating        point value.]]    [[[^system]]        [The number of system CPU seconds the executed command spent as a floating        point value.]]    [[[^output]]        [The output of the command as a single string. The content of the output        reflects the use of the =-pX= option.]]][note    If both variables are set for a target both are called, first =__TIMING_RULE__=    then =__ACTION_RULE__=. ][endsect][endsect][endsect][section Modules]Boost Jam introduces support for modules, which provide some rudimentary namespace protection for rules and variables. A new keyword, "=module=" was also introduced. The features described in this section are primitives, meaning that they are meant to provide the operations needed to write Jam rules which provide a more elegant module interface.[section Declaration][premodule /expression/ { ... }]Code within the [^{ ... }] executes within the module named by evaluating expression. Rule definitions can be found in the module's own namespace, and in the namespace of the global module as /module-name/./rule-name/, so within a module, other rules in that module may always be invoked without qualification:[pre*module my_module**{*    rule salute ( x ) { ECHO $(x), world ; }    rule greet ( ) { salute hello ; }    greet ;*}**my_module.salute* goodbye ;]When an invoked rule is not found in the current module's namespace, it is looked up in the namespace of the global module, so qualified calls work across modules:[premodule your_module{    rule bedtime ( ) { *my_module.salute* goodnight ; }}][endsect][section Variable Scope]Each module has its own set of dynamically nested variable scopes. When execution passes from module A to module B, all the variable bindings from A become unavailable, and are replaced by the bindings that belong to B. This applies equally to local and global variables:[premodule A{    x = 1 ;    rule f ( )    {        local y = 999 ; # becomes visible again when B.f calls A.g        B.f ;    }    rule g ( )    {        ECHO $(y) ;     # prints "999"    }}module B{    y = 2 ;    rule f ( )    {        ECHO $(y) ; # always prints "2"        A.g ;    }}]The only way to access another module's variables is by entering that module:[prerule peek ( module-name ? : variables + ){    module $(module-name)    {        return $($(>)) ;    }}]Note that because existing variable bindings change whenever a new module scope is entered, argument bindings become unavailable. That explains the use of "=$(>)=" in the peek rule above.[endsect][section Local Rules][prelocal rule /rulename/...]The rule is declared locally to the current module. It is not entered in the global module with qualification, and its name will not appear in the result of:[pre\[ RULENAMES /module-name/ \]][endsect][section The =RULENAMES= Rule][prerule RULENAMES ( /module/ ? )]Returns a list of the names of all non-local rules in the given module. If /module/ is omitted, the names of all non-local rules in the global module are returned.[endsect][section The =VARNAMES= Rule][prerule VARNAMES ( /module/ ? )]Returns a list of the names of all variable bindings in the given module. If /module/ is omitted, the names of all variable bindings in the global module are returned.[note This includes any local variables in rules from the call stack which have not returned at the time of the =VARNAMES= invocation.][endsect][section The =IMPORT= Rule]=IMPORT= allows rule name aliasing across modules:[prerule IMPORT ( /source_module/ ? : /source_rules/ *            : /target_module/ ? : /target_rules/ * )]The =IMPORT= rule copies rules from the /source_module/ into the /target_module/ as local rules. If either /source_module/ or /target_module/ is not supplied, it refers to the global module. /source_rules/ specifies which rules from the /source_module/ to import; /target_rules/ specifies the names to give those rules in /target_module/. If /source_rules/ contains a name which doesn't correspond to a rule in /source_module/, or if it contains a different number of items than /target_rules/, an error is issued. For example,[pre# import m1.rule1 into m2 as local rule m1-rule1.IMPORT m1 : rule1 : m2 : m1-rule1 ;# import all non-local rules from m1 into m2IMPORT m1 : \[ RULENAMES m1 \] : m2 : \[ RULENAMES m1 \] ;][endsect][section The =EXPORT= Rule]=EXPORT= allows rule name aliasing across modules:[prerule EXPORT ( /module/ ? : /rules/ * )]The =EXPORT= rule marks /rules/ from the =source_module= as non-local (and thus exportable). If an element of /rules/ does not name a rule in /module/, an error is issued. For example,[premodule X {  local rule r { ECHO X.r ; }}IMPORT X : r : : r ; # error - r is local in XEXPORT X : r ;IMPORT X : r : : r ; # OK.][endsect][section The =CALLER_MODULE

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久国产综合精品麻豆 | 不卡一区在线观看| 久久夜色精品国产欧美乱极品| 精品日韩欧美在线| 99国产一区二区三精品乱码| 韩国午夜理伦三级不卡影院| 亚洲成人午夜电影| 亚洲午夜日本在线观看| 26uuu精品一区二区| 欧美日本一道本在线视频| 91污在线观看| 成人av电影观看| 国产不卡视频一区| 国产一区免费电影| 国产伦理精品不卡| 中文字幕一区二区三区乱码在线| 一区二区久久久| 中文字幕精品三区| 久久久久久黄色| 精品国产免费一区二区三区四区| 国产一区二区在线看| 亚洲成av人综合在线观看| 夜夜嗨av一区二区三区| 国产精品久久免费看| 国产精品久久久久影视| 国产精品美女久久久久aⅴ国产馆| 9久草视频在线视频精品| 岛国av在线一区| 99久久er热在这里只有精品66| 日韩毛片一二三区| 国产精品婷婷午夜在线观看| 国产精品久久久久久妇女6080 | 欧美综合天天夜夜久久| 国产精品一二三四区| 国产一区二区美女诱惑| www.亚洲色图.com| 色老汉一区二区三区| 欧美精品vⅰdeose4hd| 欧美日韩一级大片网址| 欧美成人国产一区二区| 国产日韩欧美亚洲| 一区二区三区视频在线观看| 亚洲制服欧美中文字幕中文字幕| 欧美xxxxx裸体时装秀| 久久久久久久电影| 日韩视频免费观看高清完整版在线观看 | 欧美三级在线看| 欧美一区二区二区| 国产日韩欧美综合一区| 国产调教视频一区| 亚洲午夜久久久| 激情偷乱视频一区二区三区| 欧美在线你懂的| 欧美激情一区二区三区四区| 日本视频免费一区| 欧洲视频一区二区| 中文字幕精品一区二区精品绿巨人| 欧美成人vps| 亚洲成av人片一区二区| 91亚洲精品一区二区乱码| 2019国产精品| 九色综合狠狠综合久久| 国产三级三级三级精品8ⅰ区| 日韩精品一区二区三区在线播放| 欧美妇女性影城| 亚洲蜜臀av乱码久久精品| 国内一区二区在线| 欧美成人video| 天天操天天色综合| 欧美高清www午色夜在线视频| 日韩欧美一级特黄在线播放| 性感美女久久精品| 欧美日韩视频在线第一区| 亚洲精品第一国产综合野| 成人av在线播放网址| 国产欧美一区二区在线观看| 蜜臀av一区二区| 日韩欧美国产电影| 人人超碰91尤物精品国产| 在线91免费看| 日本中文字幕一区| 精品美女在线观看| 国产在线视频精品一区| 26uuu国产日韩综合| 国产一区二区三区电影在线观看 | 国内成人精品2018免费看| 精品视频在线免费看| 亚洲自拍偷拍麻豆| 欧美日韩不卡在线| 久久精品99国产精品| 日韩欧美高清dvd碟片| 毛片av一区二区| 日韩一级片网址| 奇米精品一区二区三区四区 | 国产精品日日摸夜夜摸av| 粉嫩欧美一区二区三区高清影视| 欧美性生活大片视频| 亚洲国产美女搞黄色| 在线播放中文一区| 国产精品主播直播| 国产精品国产三级国产普通话三级| 丝瓜av网站精品一区二区| 日韩女优av电影| 国产激情精品久久久第一区二区| 欧美午夜电影一区| 精品亚洲免费视频| 最新中文字幕一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 日本不卡不码高清免费观看| 精品成人一区二区三区四区| 99在线精品视频| 青青草伊人久久| 国产精品网站在线观看| 欧美日韩久久久一区| 成人性色生活片免费看爆迷你毛片| 制服丝袜av成人在线看| 国产传媒欧美日韩成人| 亚洲国产综合视频在线观看| 久久久精品欧美丰满| 欧美日韩国产小视频| 岛国一区二区三区| 麻豆视频观看网址久久| 亚洲激情自拍视频| 国产欧美一区二区精品性色 | 91色综合久久久久婷婷| 日本欧美大码aⅴ在线播放| 国产精品久久久久久久午夜片| 国产一区二区三区免费观看| 亚洲一区二区三区小说| www国产精品av| 欧美日韩亚洲丝袜制服| 91在线一区二区三区| 精东粉嫩av免费一区二区三区| 欧美精品一区二| 欧美肥妇bbw| 欧美在线你懂的| 99久久久久久99| 国产成人日日夜夜| 精品一区二区三区欧美| 亚洲线精品一区二区三区八戒| 欧美色图第一页| 不卡区在线中文字幕| 欧美日韩午夜精品| 色综合久久久久久久久| 成人美女视频在线观看18| 免费看日韩精品| 五月婷婷综合在线| 亚洲一区二区欧美日韩| 亚洲视频一区在线| 综合精品久久久| 亚洲视频一区二区在线观看| 国产欧美日韩精品在线| 久久久久久亚洲综合| 久久午夜国产精品| 久久精品网站免费观看| 久久综合久久综合久久| 精品国产人成亚洲区| 亚洲精品在线一区二区| www国产成人免费观看视频 深夜成人网| 国产精品911| 国产激情精品久久久第一区二区 | 亚洲曰韩产成在线| 伊人婷婷欧美激情| 偷拍与自拍一区| 日韩电影一二三区| 麻豆成人在线观看| 国产精品亚洲专一区二区三区| 1区2区3区精品视频| 一区二区三区加勒比av| 亚洲一区二区三区自拍| 免费在线观看一区| 久久国产精品72免费观看| 国产一区二区看久久| fc2成人免费人成在线观看播放| 日日夜夜一区二区| 久久66热偷产精品| 成人在线视频首页| 日本韩国精品在线| 日韩三级av在线播放| 中文字幕欧美激情| 一区二区三区中文字幕电影| 伊人色综合久久天天人手人婷| 337p粉嫩大胆噜噜噜噜噜91av| 色久综合一二码| 欧美日韩一级黄| 久久综合久色欧美综合狠狠| 国产精品福利电影一区二区三区四区| 欧美女孩性生活视频| 久久久久青草大香线综合精品| 欧美喷水一区二区| 国产亚洲精品中文字幕| 一区二区国产盗摄色噜噜| 久久精品国产精品亚洲精品| 高潮精品一区videoshd| 欧美日韩免费观看一区三区| 久久这里只精品最新地址| 洋洋成人永久网站入口| 国产99久久精品| 7777精品伊人久久久大香线蕉完整版 | 欧美一卡2卡3卡4卡|