无法在独立应用程序中嵌入clang

时间:2013-12-10 13:53:06

标签: c++ ubuntu cmake clang

我正在运行Ubuntu 13.04,我已经安装了clang 以及 libclang-dev llvm (通过apt)。我努力运行这里给出的 RecursiveASTVisitor 示例: -

http://clang.llvm.org/docs/RAVFrontendAction.html

但没有运气。关于烦我的事情是: -

Unknown CMake command "llvm_map_components_to_libraries"

我不知道如何编写CMakeLists.txt文件,但我正在使用的是: -

cmake_minimum_required(VERSION 2.8)

set(CMAKE_MODULE_PATH
  ${CMAKE_MODULE_PATH}
  "."
)

find_package(LibClang REQUIRED)

find_package(LLVM)

if(NOT LLVM_FOUND)
    message(FATAL_ERROR "Fatal Error: LLVM cannot be found.")
endif()

add_definitions(${LibClang_DEFINITIONS})

include_directories(
  ${LibClang_INCLUDE_DIRS}
)

include_directories( ${LLVM_INCLUDE_DIRS} )
link_directories( ${LLVM_LIBRARY_DIRS} )

add_executable(ast TestCLang.cpp)
target_link_libraries(ast
  ${LibClang_LIBRARIES}
)

include_directories( ${LLVM_INCLUDE_DIRS} )
link_directories( ${LLVM_LIBRARY_DIRS} )

llvm_map_components_to_libraries(REQ_LLVM_LIBRARIES jit native)

target_link_libraries(ast REQ_LLVM_LIBRARIES)

#add_subdirectory(test)

set(LLVM_USED_LIBS clangTooling)

#add_clang_executable(find-class-decls TestCLang.cpp)

我不能使用 llvm_map_components_to_libraries add_clang_executable ,因为它抱怨不知道这些命令。我想我正在使用LLVM-3.2。 这是我的 FindLibClang.cmake : -

execute_process(
  COMMAND llvm-config --cxxflags
  OUTPUT_VARIABLE LibClang_DEFINITIONS)

set(LibClang_DEFINITIONS ${LibClang_DEFINITIONS} "-fno-rtti")

execute_process(
  COMMAND llvm-config --includedir
  OUTPUT_VARIABLE LibClang_INCLUDE_DIR)

find_library(LibClang_LIBRARY NAMES clang)

set(LibClang_LIBRARIES ${LibClang_LIBRARY})
set(LibClang_INCLUDE_DIRS ${LibClang_INCLUDE_DIR})

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibClang DEFAULT_MSG LibClang_LIBRARY LibClang_INCLUDE_DIR)

mark_as_advanced(LibClang_INCLUDE_DIR LibClang_LIBRARY)

有人对我的结果有什么不妥吗?

谢谢和问候, Prakhar Mishra

0 个答案:

没有答案