2017-12-10 14 views
1

私はLLVMと打ち鳴らすを構築するために管理し、今私はclang docsに応じClangToolを作成しようとしています。私はそれを構築しようとしているとき、私は次のエラーを取得しています:ビルドLLVM ClangTool

CMake Error at tools/clang/tools/loop-convert/CMakeLists.txt:6 (target_link_libraries): 
    The keyword signature for target_link_libraries has already been used with 
    the target "loop-convert". All uses of target_link_libraries with a target 
    must be either all-keyword or all-plain. 

    The uses of the keyword signature are here: 

    * cmake/modules/LLVM-Config.cmake:105 (target_link_libraries) 
    * cmake/modules/AddLLVM.cmake:771 (target_link_libraries) 

私の現在のCMakeLists.txtは次のとおりです。あなたがtarget_link_librariesのキーワード署名を使用する必要が

set(LLVM_LINK_COMPONENTS support) 

add_clang_executable(loop-convert 
    LoopConvert.cpp 
) 

target_link_libraries(loop-convert 
    clangTooling 
    clangBasic 
    clangASTMatchers 
) 

答えて

2

。効果的に、あなたはあなたのCMakeLists.txttarget_link_librariesステートメントにPRIVATEを追加する必要があります。

target_link_libraries(loop-convert PRIVATE 
    clangTooling 
    clangBasic 
    clangASTMatchers 
) 

add_llvm_executableは、このような署名を使用していて、CMakeのでそれらを混在させることはできませんので、これがあります。

+0

私はまだ少し混乱しています。 CMakeLists.txtで質問を更新しました。 –

+0

私も混乱しました。私は私の答えを更新しました。 – arrowd

関連する問題