c++ - 我可以在源代码之外使用 Clang 库吗?
问题描述
一段时间以来,我一直在尝试使用源代码之外的 clang 库。本质上,我一直在处理各种 cmake 文件。我通过 llvm pass 完成了类似的事情,我能够使用 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 来编写 FrontEndActions,那就太好了。
解决方案
您可以像使用 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 中获得的功能:源代码(我没有使用它们,所以无法评论这部分)。
推荐阅读
- python - 如何计算一个元素在RDD加入(Spark)之后有2个字段相同的次数
- uipath - 如何在uipath中替换DOUBLE_QUOTE“字符
- python - 无法启动 docker-compose 并在 No module 上失败
- python - OpenCV:如何将我的图像传递给另一种方法?
- c# - 内连接和左连接与内部查询 - 从 SQL 到 LINQ
- react-native - 如何在我的代码的任何地方调用我的 toast (native-base)?
- openpyxl - 带有空格的工作表名称的Openpxyl问题
- tensorflow - TF 2.0 Keras fit_generator:data_generator 输出错误的形状
- angular - 使用 RxJS 在另一个订阅中进行相同的订阅
- fusionauth - FusionAuth 外部 JWT 提供程序 - 电子邮件域