星期三, 4月 12, 2006

Compiler && debain

3.7.3 Flex – 更好的 Lex

flex 是一個快速的字詞分析產生器。

flex 的參考資料:

*

info flex (tutorial)
*

flex(1)

需要提供你自己的 main() 和 yywrap() ,或者你的 program.l 在不用 library 時應該看起來看像這樣 (yywrap是一個巨集;%option main 隱含地打開了 %option noyywrap):

%option main
%%
.|\n ECHO ;
%%

另外,還可以在 cc 命令列末尾加上 -lfl 連接器的選項來進行編譯 (就像 AT&T-Lex 使用 -ll 一樣),此時就不需要 %option 了。
13.7.4 Bison – 更好的 Yacc

Debian 中有幾個套件提供了與 Yacc 兼容的 LALR 文法分析生成器:

*

bison: GNU LALR 文法分析產生器
*

byacc: The Berkeley LALR 文法分析產生器
*

btyacc: Backtracking parser generator ,以 byacc 為基礎

bison 的參考資料:

*

info bison (tutorial)
*

bison(1)

需要提供自己的 main() 和 yyerror() 。 main() 呼叫 yyparse() ,而 yyparse() 呼叫 yylex() ,通常由 FleX 建立。

%%

%%

13.7.5 Autoconf

autoconf 一個 shell script 生成工具,由它生成的 script 能自動設定軟體的源碼套件,以適用於各種使用完整 GNU build 系統的 UNIX-like 系統。

autoconf 會產生設定 script 的 configure。 configure 使用 Makefile.in 模版來自動建立適合的 Makefile。
13.7.5.1 編譯和安裝程式

Debian 不會改動 /usr/local/ 下的文件 (參閱 多樣性支援, 第 2.5 節)。所以如果是從源碼來編譯程式,並將其安裝到 /usr/local/ 下,就不會影響到 Debian。

$ cd src
$ ./configure --prefix=/usr/local
$ make
$ make install # 這會把檔案放到系統中


Debain

沒有留言: