libはじまりでない共有ライブラリをリンクする

wafでビルドシステムを構築している際に, libはじまりでない名前の共有ライブラリをビルド時にリンクする必要が出てきた. wscriptではlibオプションにライブラリ名を指定できるが, libで名前のはじまるパスの通ったものしかリンクできないように見えたので, 以下のようにした.

$ ln -s /path/to/Hoge.so /path/to/libhoge.so
$ LIBRARY_PATH=/path/to g++ -o main main.cpp -lhoge

これは以下のようなwscriptになる.

def build(bld):
  bld.program(source='main.cpp', target='main', lib=['hoge'])

先のように名前を入れ替えずに済む方法として"-l:"を使うことを教わったのでメモしておく. 以下のようにします.

def build(bld):
  bld.program(source='main.cpp', target='main', lib=[':/path/to/Hoge.so'])

知らんかった. /path/toにパスが通っていれば単に":Hoge.so"でいけます.