LoginSignup
3
3

More than 5 years have passed since last update.

dmdのリンクオプションの書き方がわかった

Last updated at Posted at 2013-06-27

とあるD言語のライブラリをビルドすると,libhoge.aというファイルが生成された.
もちろんこのファイルの意味は知っている.共用じゃないライブラリだ.

はて,これをリンクさせるにはどうすればよいのだろう…
gccでは, libhoge.a があるディレクトリ/aを,
-L/a
して,
そのファイルを
-lhoge
みたいな,libと拡張子を除いた名前で指定してやれば良い…
要するに,main.cをコンパイルするときにリンクしたいなら

% pwd
/a
% ls
main.c libhoge.a
% gcc main.c -L/a -lhoge

まあ色々突っ込みどころはあるが,大体こんな感じで行けたはずだ.
C言語と似通ったD言語のコンパイラ,dmdのことだ,似たような方法に違いない.

早速 man dmd を見てみる.
英語だ.日本語版を探す.見つける.
http://www.kmonos.net/alang/d/dmd-linux.html

えっと,ライブラリファイルをそのままD言語ソースファイルと同じように指定する…
あれ,出来ないな.アンリファレンスだな…

もう一度DMDのマニュアルを見ると,どうやら,dmdはリンカとしてgccを利用しているらしい…
そして,-Lはあるけど,-lはない…どういうことだ…

色々サンプルを見てみると,
dmd -L-lhoge
みたいなオプションを指定すると,リンカ役のgccに-lhogeをそのまま渡すらしい.
つまり,main.dをコンパイルしたいときに,libhoge.aをリンクしたいなら.

% pwd
/a
% dmd main.d libhoge.a -L-L/a -L-lhoge

ライブラリファイル自体を渡さなければいけない理由とかよくわかんない.でもコンパイルできたから良いや.もう寝る.

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3