2009-10-14 11 views
35

私はlinux上でboost.pythonを使ってPythonの動的ロードライブラリを構築するためのcmakeルールを書こうとしています。私は 'foo'をPythonモジュール名に使用したいと思います。したがって、ライブラリはfoo.soと呼ばれなければなりません。 しかし、私は動的ロードされたライブラリのCMake出力名?

add_library(foo foo.cpp) 

を書く場合、私は出力にlibfoo.soを取得しますので、デフォルトでは、cmakeのは、ライブラリの命名のための標準的なルールを使用しています。 でもset_target_properties(foo PROPERTIES OUTPUT_NAME "foobar")libfoobar.soを作成します。

この動作を変更するにはどうすればよいですか?

答えて

56

をfoo.soですしlibfoo.soをrenmaeなる、cmakeのターゲットを取り付ける作成することです:

set_target_properties(foo PROPERTIES PREFIX "") 
1

接頭辞 "lib"はunix/linuxのための規則であり、コンパイラによって広く利用されています(たとえば、-lfooを書くときにリンクするときなど)。

cmakeにlibfoo.soの代わりにfoo.soを強制的に作成させることができるかどうかは分かりませんが、Pythonモジュールには "libfoo"を使用できます。別のオプションは、あなたがこの行に接頭辞の設定を解除することができます

関連する問題