Hor*_*tur 9 c++ cmake llvm clang
我设法建立了llvm和clang,现在我正在尝试根据clang docs创建一个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)
Run Code Online (Sandbox Code Playgroud)
我目前的CMakeLists.txt是:
set(LLVM_LINK_COMPONENTS support)
add_clang_executable(loop-convert
LoopConvert.cpp
)
target_link_libraries(loop-convert
clangTooling
clangBasic
clangASTMatchers
)
Run Code Online (Sandbox Code Playgroud)
arr*_*owd 10
你需要使用关键字签名target_link_libraries; 有效地,您需要添加PRIVATE到target_link_libraries您的语句中CMakeLists.txt:
target_link_libraries(loop-convert PRIVATE
clangTooling
clangBasic
clangASTMatchers
)
Run Code Online (Sandbox Code Playgroud)
这是因为add_llvm_executable使用这样的签名而你不能在CMake中混合它们.