我正在尝试从标准分发中构建一个示例,即BrainF并没有成功.
我制作了我的示例/ BrainF的副本,并试图从这个目录运行cmake.最初CMakeLists.txt看起来像这样:
set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter)
add_llvm_example(BrainF
BrainF.cpp
BrainFDriver.cpp
)
Run Code Online (Sandbox Code Playgroud)
cmake抱怨add_*.我通过http://llvm.org/docs/CMake.html#embedding阅读并决定在CMakeLists.txt中添加一些前奏:
find_package(LLVM)
# Define add_llvm_* macro's.
include(AddLLVM)
add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})
link_directories(${LLVM_LIBRARY_DIRS})
Run Code Online (Sandbox Code Playgroud)
然后cmake抱怨它无法执行find_package(LLVM)并建议寻找LLVMConfig.cmake或llvm-config.cmake.我在/usr/src/llvm/cmake/modules/LLVM-Config.cmake下找到的最接近的东西,所以我设置CMAKE_PREFIX_PATH=/usr/src/llvm/cmake/modules/并将LLVMConfig.cmake软链接到LLVM-Config.cmake.
然后cmake以这种方式抱怨:"包括找不到加载文件:AddLLVM".如果我将整个路径硬编码为包含AddLLVM.cmake,则问题包括AddLLVM.cmake中包含哪些内容,因此它似乎不是完成任务的正确方法.
我的环境是Xubuntu 12.04和llvm + clang 3.1(来自某些ppa的deb包,来自Debian的backport).
在 llvm 11.0。
我尝试过,它有效。
可能必须使用 add_llvm_executable 命令与 LLVM_LINK_COMPONENTS 链接
cmake_minimum_required(VERSION 3.4.3)
find_package(LLVM REQUIRED CONFIG)
project(BrainF)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
include_directories(${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS})
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
include(AddLLVM)
set(LLVM_LINK_COMPONENTS
BitWriter
Core
ExecutionEngine
MC
MCJIT
Support
nativecodegen
)
add_llvm_executable(BrainF
BrainF.cpp
BrainFDriver.cpp
)
Run Code Online (Sandbox Code Playgroud)
ps更新。2020年11月1日。
cmake_minimum_required(VERSION 3.4.3)
project(BrainF)
find_package(LLVM 11 REQUIRED CONFIG)
add_definitions(${LLVM_DEFINITIONS})
include_directories(${LLVM_INCLUDE_DIRS})
message(STATUS "LLVM VERSION : ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
add_executable(BrainF
BrainF.cpp
BrainFDriver.cpp
)
llvm_map_components_to_libnames(llvm_libs support core irreader)
target_link_libraries(BrainF llvm_libs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5923 次 |
| 最近记录: |