C++ 我可以使用源代码之外的Clanglibs吗?

C++ 我可以使用源代码之外的Clanglibs吗?,c++,makefile,cmake,clang,llvm,C++,Makefile,Cmake,Clang,Llvm,一段时间以来,我一直在尝试使用源代码之外的铿锵库。基本上,我一直在摆弄各种各样的cmake文件。我通过llvm过程实现了类似的功能,我能够使用llvm libs在源代码之外以以下方式编译cpp文件: 这是父目录中的cmake文件 cmake_minimum_required(VERSION 3.10) find_package(LLVM REQUIRED CONFIG) message(STATUS ${LLVM_VERSION}) list(APPEND CMAKE_MODULE_PATH "

一段时间以来,我一直在尝试使用源代码之外的铿锵库。基本上,我一直在摆弄各种各样的cmake文件。我通过llvm过程实现了类似的功能,我能够使用llvm libs在源代码之外以以下方式编译cpp文件:

这是父目录中的cmake文件

cmake_minimum_required(VERSION 3.10)
find_package(LLVM REQUIRED CONFIG)
message(STATUS ${LLVM_VERSION})
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
include(AddLLVM)

add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})

add_subdirectory(myPasses)
子目录中的cmake文件是:

cmake_minimum_required(VERSION 3.10)
add_llvm_library(LLVMtest MODULE
    file1.cpp
    file2.cpp
    file3.cpp
)

如果我可以制作这样的cmake文件,使用clang编写前端操作,那就太好了。

您可以像使用LLVM一样搜索clang的cmake模块:

find_package(Clang REQUIRED CONFIG)
然后,您可以像通常使用CMake项目一样使用Clang库,例如:

add_executable(ClangTest
    file1.cpp
    file2.cpp
    file3.cpp
)
target_link_libraries(ClangTest clangBasic clangEdit)

还有一些函数与您从LLVM的CMake获得的函数类似:(我没有使用它们,因此无法对此部分进行评论)。

这里有问题吗?听起来好像你已经管理好了一切。你有源代码,没有人能从你那里拿走它,而且你甚至说服了cmake做你的出价(恭喜!)那么问题是什么?我给的cmake是一个llvm通行证而不是一个叮当作响的ast访客,放在那里的原因是给我一个关于我在寻找什么的想法,抱歉混淆。