lib¶
lib
宣言は、ライブラリに属するC関数と型をグループ化します。
@[Link("pcre")]
lib LibPCRE
end
コンパイラによって強制されるものではありませんが、lib
の名前は通常Lib
で始まります。
属性は、外部ライブラリを見つけるためのリンカにフラグを渡すために使用されます。
@[Link("pcre")]
はリンカに-lpcre
を渡しますが、コンパイラは最初にpkg-configを使用しようとします。@[Link(ldflags: "...")]
は、変更せずに、これらのフラグを直接リンカに渡します。例:@[Link(ldflags: "-lpcre")]
。一般的な手法は、バッククォートを使用してコマンドを実行することです:@[Link(ldflags: "`pkg-config libpcre --libs`")]
。@[Link(framework: "Cocoa")]
は、リンカに-framework Cocoa
を渡します(macOSでのみ有効)。
libcの場合のように、ライブラリが暗黙的にリンクされている場合、属性は省略できます。
リフレクション¶
Lib関数は、TypeNode#methods
メソッドを使用して、プログラム内のマクロ言語でどこからでも表示できます。
lib LibFoo
fun foo
end
{{ LibFoo.methods }} # => [fun foo]