Buildコンパイルツール学習ノート:共通コマンドパラメータとBRFファイル
ビルドツールのホームページは次のとおりです.http://www.dsource.org/projects/build
以前はbudと呼ばれていたので、ここではbudとbuildを混用して、同じものを指しています.
buildはD言語のコンパイルツールで、Cのmakeコマンドに相当します.
ただし、import文を処理し、依存するファイルを自動的にロードできるため、より簡単で使いやすいです.
本文を読んでから、基本的に使えるようになりました.
高度な機能を使いたいなら、もちろん研究に時間がかかります.
buildに関連するファイルは次のとおりです.
brfファイル(Build Response File)--budコマンドのパラメータファイル
ソースファイルのPragmas命令
rdfファイル(Rule Definition File)--ルール定義ファイル
mdfファイル(Macro Definition File)--マクロ定義ファイル
cfgファイル(Configuration File)--プロファイル
pflファイル(Profile File)--プロファイル?
このうちbrfファイルにはbuildコマンドのパラメータが書かれているので、まずパラメータから始めます.
まずいくつかの簡単なパラメータを見てからbrfファイルについて話して、最後に他のパラメータを簡単に列挙します.
[注:以下Linuxとdmdでテストしましたが、winとgdcはテストしていません]
buildコマンドのフォーマットは次のとおりです.
パラメータもソースファイルも順番がなくて、任意に並べることができます--ソースファイルを前に置くのが好きで、コンパイルパラメータを後ろに置くのが好きです.コンパイルパラメータはよく変更されるからです.
Budの共通パラメータの1つ:一般オプション
budのパラメータでなければdmdに渡されます.例えば-op-L-lパラメータを指定できます[注:当てて、肯定しません]
コマンドパラメータが横線(-)の場合は有効、横線が2つの場合は無効です.
例えば、bud--cleanup-full
2つの横線(-)は一般的にbrfファイルと組み合わせて使用され、brfファイルのコンパイルパラメータを無効にすることを示します.
例をあげます:a.dとb.d
最も簡単なコンパイル方法:
ここでは、a.dのimportが機能するため、b.dを指定する必要はありません.
budコマンドは自動的に処理されます.簡単じゃないの?
コンパイル後に実行します.
名前を変更:
a.dまたはb.dを変更せずに、上記のコマンドを複数回実行すると、次のプロンプトが表示されます.
これはmakeの原理と同じで、毎回コンパイルしたい場合は、このようにすることができます.
そんなにたくさんの.oファイルを見て不快になったら、削除します.
いくつかのデバッグオプション:
useファイル:
[USES]と[USEDBY]の2つのラベルが表示されます.
[USES]Aファイルで使用されているファイルの意味
[USEDBY]の意味は、どのファイルAファイルが使用されているか
各行のファイル名の間を<>で分割
昇順配列
Budの共通パラメータの2:コンパイルオプション
[注:コンパイラの用語がはっきりしていないと、表現がはっきりしないことがあります.コンパイル用語を後で検討して、この部分を修正します]
コンパイルプロセスは一般的にa.d(ソースファイル) -> a.o(objectファイル)->a.exe(実行可能ファイル)前処理などの手順は説明しません
objectファイルは、静的リンクライブラリ(liba.a)または動的リンクライブラリ(liba.so)にコンパイルすることもできます.
a.dからa.oまでのプロセスをコンパイルプロセスと呼ぶ
a.oからa.exeまでのプロセスを接続プロセス(link)と呼ぶ
a.oからliba.a/soまでのプロセスをlibプロセスと呼ぶ [注:本当にどのように訳すことを知りません;(]
budはデフォルトでmain()またはWinmain()関数のあるソースプログラムを実行可能ファイルにコンパイルします.
この2つの関数がない場合は、リンクライブラリファイル(.a)にコンパイルされます.
次のオプションでは、これらの動作を変更できます.
どうやって.soのファイルを生成するか分かりません.
例を挙げてみましょう.
LIZBOPTの役割がよくわからないので、原文の定義を並べましょう、サボってしまいました
-LIBOPT
This allows you to pass one or more command line arguments to the librarian.
-LIBPATH
This allows you to add one or more paths to be searched for library files.
This might be used when you don't want to permanently update the standard search paths.
Example:
-Pの例:
b.dファイルの移動/ディレクトリの下で、bud a.dでコンパイルするとb.dが見つからないことをヒントにします.ok
dmdコマンドの-Lパラメータ:指定する
brfファイル使用説明
brfファイルは,各種budコマンドパラメータを定義した集合である.
ファイル拡張子:.brf
例:
ファイル名:final.brf
実行方法:
ソースファイルをbrfファイルに書き込むことができます
各行に1つのコンパイルパラメータがあり、順序がありません.
brfファイルのパラメータを無効にするには--オプションを使用します.
Makefileファイルのように複数のコンパイル先を定義することはできません.複数のbrfファイルを定義しましょう
budコマンドのデフォルトbrfファイルはbuild.brfと呼ばれ、デフォルトのbrfを使用する場合は、ファイル名を指定する必要はありません.
いくつかの例を多く置いて、メモしてください.
ソース:http://dlang.group.iteye.com/group/topic/1072?page=6
簡単なmake.brfファイル
その他のbudパラメータ
定義がなければ、自分でドキュメントを見ましょう.私もよく分かりません.
Budのコンパイルインストール
ソースプログラムのダウンロード
make -f Makefile.unix
./build build -full -op
ln -s build bud
後記:
私はDでテストプログラムを書くだけなので、基本的に2、3つのファイルで、せいぜいCのリンクライブラリがあります.
私のこのような小さな需要は、budコマンドがうまく処理できます.もっと複雑な状況では、私は知りません.
文の中には間違いや不確実なところがあるので、私が理解してから修正しましょう.
以前はbudと呼ばれていたので、ここではbudとbuildを混用して、同じものを指しています.
buildはD言語のコンパイルツールで、Cのmakeコマンドに相当します.
ただし、import文を処理し、依存するファイルを自動的にロードできるため、より簡単で使いやすいです.
本文を読んでから、基本的に使えるようになりました.
高度な機能を使いたいなら、もちろん研究に時間がかかります.
buildに関連するファイルは次のとおりです.
brfファイル(Build Response File)--budコマンドのパラメータファイル
ソースファイルのPragmas命令
rdfファイル(Rule Definition File)--ルール定義ファイル
mdfファイル(Macro Definition File)--マクロ定義ファイル
cfgファイル(Configuration File)--プロファイル
pflファイル(Profile File)--プロファイル?
このうちbrfファイルにはbuildコマンドのパラメータが書かれているので、まずパラメータから始めます.
まずいくつかの簡単なパラメータを見てからbrfファイルについて話して、最後に他のパラメータを簡単に列挙します.
[注:以下Linuxとdmdでテストしましたが、winとgdcはテストしていません]
buildコマンドのフォーマットは次のとおりです.
build <sourcefile> [<switches> ] [<otherfiles> ]
sourcefile main
switches
otherfiles ,object , ( :))
パラメータもソースファイルも順番がなくて、任意に並べることができます--ソースファイルを前に置くのが好きで、コンパイルパラメータを後ろに置くのが好きです.コンパイルパラメータはよく変更されるからです.
Budの共通パラメータの1つ:一般オプション
-exec ,
-cleanup , , .o
-full ,
-T<name>
-od<path> .o
-silent ,
-test ,
-v build dmd
-V build , dmd
-info build
-names
-uses[=fname]
budのパラメータでなければdmdに渡されます.例えば-op-L-lパラメータを指定できます[注:当てて、肯定しません]
コマンドパラメータが横線(-)の場合は有効、横線が2つの場合は無効です.
例えば、bud--cleanup-full
2つの横線(-)は一般的にbrfファイルと組み合わせて使用され、brfファイルのコンパイルパラメータを無効にすることを示します.
例をあげます:a.dとb.d
module a;
import b;
import std.stdio;
void main(char[][] arg)
{
writef("in Module A: ");
writefln(arg);
print_b();
}
module b;
import std.stdio;
void print_b()
{
writefln("in Module B: b.d");
}
最も簡単なコンパイル方法:
bud a.d
bud a # .d
ここでは、a.dのimportが機能するため、b.dを指定する必要はありません.
budコマンドは自動的に処理されます.簡単じゃないの?
コンパイル後に実行します.
bud a.d -exec
bud a.d -execXXX # XXX
bud a.d -exec"XXX YYY" # 2 XXX YYY ; bash ,
名前を変更:
bud a.d -Ta.out # :a.out ; , a.out, ;(
bud a.d -Ttest_{Target} # :test_a
a.dまたはb.dを変更せずに、上記のコマンドを複数回実行すると、次のプロンプトが表示されます.
Files are up to date, no build required.
これはmakeの原理と同じで、毎回コンパイルしたい場合は、このようにすることができます.
bud a.d -full
そんなにたくさんの.oファイルを見て不快になったら、削除します.
bud a.d -clean # -clean -cleanup
いくつかのデバッグオプション:
bud a.d -names #
bud a.d -test # dmd gcc
bud .ad -uses=x # , a.use, x
bud a.d -v # bud , dmd
bud a.d -V # bud
useファイル:
[USES]
a.d <> /usr/local/src/phobos/std/stdio.d
a.d <> b.d
b.d <> /usr/local/src/phobos/std/stdio.d
[USEDBY]
/usr/local/src/phobos/std/stdio.d <> a.d
/usr/local/src/phobos/std/stdio.d <> b.d
b.d <> a.d
[USES]と[USEDBY]の2つのラベルが表示されます.
[USES]Aファイルで使用されているファイルの意味
[USEDBY]の意味は、どのファイルAファイルが使用されているか
各行のファイル名の間を<>で分割
昇順配列
Budの共通パラメータの2:コンパイルオプション
[注:コンパイラの用語がはっきりしていないと、表現がはっきりしないことがあります.コンパイル用語を後で検討して、この部分を修正します]
コンパイルプロセスは一般的にa.d(ソースファイル) -> a.o(objectファイル)->a.exe(実行可能ファイル)前処理などの手順は説明しません
objectファイルは、静的リンクライブラリ(liba.a)または動的リンクライブラリ(liba.so)にコンパイルすることもできます.
a.dからa.oまでのプロセスをコンパイルプロセスと呼ぶ
a.oからa.exeまでのプロセスを接続プロセス(link)と呼ぶ
a.oからliba.a/soまでのプロセスをlibプロセスと呼ぶ [注:本当にどのように訳すことを知りません;(]
budはデフォルトでmain()またはWinmain()関数のあるソースプログラムを実行可能ファイルにコンパイルします.
この2つの関数がない場合は、リンクライブラリファイル(.a)にコンパイルされます.
次のオプションでは、これらの動作を変更できます.
どうやって.soのファイルを生成するか分かりません.
-obj object (.o), link lib , -nolink -nolib
-link main() , 。
main() ,
-nolink main() : link , .o
-lib main() : link , .a
-nolib main() : lib , .o
-allobj :(
-LIBOPT
-LIBPATH
-PP
例を挙げてみましょう.
#-obj: .o
bud a.d -obj # a.o b.o
bud b.d -obj # b.o, a.o ;)
#-link:
bud a.d -obj # a.o
bud b.d a.o # b
#-nolink:
bud a.d -nolink # a.o
#-lib:
bud a.d -lib # a.a liba.a?
#-nolib:
bud b.d -nolib # b.o , b.a
LIZBOPTの役割がよくわからないので、原文の定義を並べましょう、サボってしまいました
-LIBOPT
This allows you to pass one or more command line arguments to the librarian.
Example: Set the page size to 32Kb
-LIBOPT-p32
Example: Embedded spaces enclosed in quotes.
"-LIBOPT -l -i"
-LIBPATH
This allows you to add one or more paths to be searched for library files.
This might be used when you don't want to permanently update the standard search paths.
Example:
-LIBPATH=c:\mylibs;d:\3rdparty;c:\lib\debuglibs
-LIBPATH=/usr/lib:/usr/local/lib:/usr/local/lib/mysql/
-Pの例:
b.dファイルの移動/ディレクトリの下で、bud a.dでコンパイルするとb.dが見つからないことをヒントにします.ok
bud a.d -PP/ # /b.o, b.o ,
bud a.d -PP/ -op # 1:op dmd , .o
bud a.d -PP/ -odobj # 2: .o obj
dmdコマンドの-Lパラメータ:指定する
-L , :
-L-lpthread linux libpthread.so
brfファイル使用説明
brfファイルは,各種budコマンドパラメータを定義した集合である.
ファイル拡張子:.brf
例:
ファイル名:final.brf
# # # brf
-T{Target}_release #
-release # Don't generate runtime checks.
-full #
-cleanup #
-inline #
実行方法:
bud a @final # @
bud a @final --inline
# inline ; , ;(
ソースファイルをbrfファイルに書き込むことができます
各行に1つのコンパイルパラメータがあり、順序がありません.
brfファイルのパラメータを無効にするには--オプションを使用します.
Makefileファイルのように複数のコンパイル先を定義することはできません.複数のbrfファイルを定義しましょう
budコマンドのデフォルトbrfファイルはbuild.brfと呼ばれ、デフォルトのbrfを使用する場合は、ファイル名を指定する必要はありません.
bud @
いくつかの例を多く置いて、メモしてください.
ソース:http://dlang.group.iteye.com/group/topic/1072?page=6
-cleanup .o
-L-lpthread linux libpthread.so
-LIBPATH=c:\db
libdb45.lib windows lib
-op .o
-odobjs .o objs
-T../bin/test
簡単なmake.brfファイル
-cleanup
-op
-L-ldb
-LIBPATH=/home/lijie/dm/lib:/home/lijie/dmd/lib:/usr/local/BerkeleyDB.4.5/lib
src/test.d
-T../bin/test
その他のbudパラメータ
定義がなければ、自分でドキュメントを見ましょう.私もよく分かりません.
-DCPATH
-CFPATH D
-BCFPATH Bud
-RDF<file> RDF (Rule Definition File)
-MDF<file> MDF (Macro Definition File)
-nodef MDF(Module Definition File)
-explicit
-usefinal
-dll DllMain() , Dll ;...
-gui WinMain() , GUI ;...
-help
-AutoWinLibs(=<Yes/No>)
-modules(=<name>)
-UMB=<Yes/No>
-R<option>
-emptyargs
-M<name>
-X<name>
Budのコンパイルインストール
ソースプログラムのダウンロード
make -f Makefile.unix
./build build -full -op
ln -s build bud
後記:
私はDでテストプログラムを書くだけなので、基本的に2、3つのファイルで、せいぜいCのリンクライブラリがあります.
私のこのような小さな需要は、budコマンドがうまく処理できます.もっと複雑な状況では、私は知りません.
文の中には間違いや不確実なところがあるので、私が理解してから修正しましょう.