2017-01-23 13 views
1

悲しいことに、CMakeは、ライブラリ名が実際に規約(例:zlib)に従わないときに必然的に問題を引き起こす"暗黙のlib "彼らの名前の明白な部分。CMakeがライブラリ名の前に `lib`を付けるのを止める

例えば、私はlibusbを追加したいとします。Windowsの

add_library(libusb ...) 

が、これは正しくlibusb.libが生成されます。 Unixでは、それは陽気なliblibusb.aを生成します。この現象を防ぐ方法はありますか?私はOUTPUT_NAMEを使って明示的に出力名を設定できることを知っていますが、Windows上でlibusb.libを保存するには、いくつかのファンキーなジェネレータ表現を使用する必要があります。もっと良い方法があるのだろうか?

(そして、いやadd_library(usb ...が解決策ではありません;ライブラリがないのlibusb USBと呼ばれている)

+0

ライブラリの名前を "usb"に変更し、Windowsに "lib"を追加することもできます.... –

答えて

3

あなたはCMAKE_STATIC_LIBRARY_PREFIXを経由して、それを修正することができます。

set(CMAKE_STATIC_LIBRARY_PREFIX "") 

それとも、PREFIX targetプロパティを経由して、ターゲットごとに、それを変更することができます。だからあなたの場合には、ちょうどあなたのproject()コマンドの後に行います。

+0

ああ、ありがとう! – Timmmm

関連する問題