2016-12-07 3 views
2

私のCMakeLists.txtにfooという名前のバイナリとlibfoo(.a | .so)という名前のライブラリを作成したいと思います。CMake:バイナリfoo +ライブラリlibfooを作成しますか?

だから私は、次のコードを使用して試してみました:

add_executable(foo ${BIN_SRC}) 
add_library(foo ${LIB_SRC}) 

をしかし残念ながら、上記のコードは、エラーメッセージで失敗します。

Make Error at CMakeLists.txt:156 (add_library): 
add_library cannot create target "foo" because another target with 
the same name already exists. The existing target is an executable created 

私が私の中のfooという名前の2つの目標を持っていることaboviousですエラーの原因となっているCMakeLists.txt。私はできる。

add_library(libfoo ${LIB_SRC}) 

しかし、私のライブラリはliblibfoo(.a | .so)という名前になっていますが、これは私が望むものではありません!

答えて

4

実行可能ファイル/ライブラリの名前ファイルは、ターゲットと同じである必要はありません。あなたはOUTPUT_NAMEターゲットのプロパティを使用して作成したファイルの名前を調整することができる:

add_library(libfoo ${LIB_SRC}) 
set_target_properties(libfoo PROPERTIES OUTPUT_NAME foo) 
+0

おかげで、それはまさに私が探していたもの! – Linoliumz

+0

だから、解決したことを示す答えを受け入れてください*。 – ollo

関連する問題