我正在尝试构建自己的使用 LLVM 的项目。我在官网上下载了源码和预编译包(最新版本)。
http://releases.llvm.org/download.html
我下载了 :
LLVM source code
Clang for Windows (64-bit)
仅供参考,我不构建 LLVM...只想使用它!
我按照这里的说明进行操作:http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project
在“将 LLVM 嵌入到您的项目中”部分中
所以,我添加了这段代码:
find_package(LLVM REQUIRED CONFIG)
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
message("LLVM_INCLUDE_DIRS=${LLVM_INCLUDE_DIRS}")
message("LLVM_DEFINITIONS=${LLVM_DEFINITIONS}")
但我收到了几条 cmake 错误消息,这是我的输出:
-- Using LLVMConfig.cmake in: C:\\Luciad_src\\libs\\LLVM\\cmake\\modules
LLVM_INCLUDE_DIRS=
LLVM_DEFINITIONS=
CMake Error at C:/Luciad_src/libs/LLVM/cmake/modules/LLVM-Config.cmake:31 (list):
list sub-command REMOVE_ITEM requires two or more arguments.
Call Stack (most recent call first):
C:/Luciad_src/libs/LLVM/cmake/modules/LLVM-Config.cmake:256 (is_llvm_target_library)
components/query/CMakeLists.txt:15 (llvm_map_components_to_libnames)
我的脚本或我使用的软件包有问题吗?任何想法 ?
感谢您的帮助
您可以拥有LLVM
作为二进制或源代码包。
二进制包不包含 CMake 支持。如果比较这两种安装(左侧是二进制文件,右侧是构建和安装后的源代码),您可以看到差异:
LLVM-5.0.0-win64.exellvm-5.0.1.src.tar.xz(构建并安装)
所以你需要构建并安装源码包首先获得 CMake 支持。在我的 Windows 机器上我需要一个cmd
shell 具有管理员权限,一个 Visual Studio 安装,转到下载并解压的源代码并执行以下操作:
> mkdir mybuilddir
> cd mybuilddir
> cmake ..
> cmake --build . --config Release --target INSTALL
如果我现在使用你的 CMake 示例,我会得到:
-- Found LLVM 5.0.1
-- Using LLVMConfig.cmake in: C:/Program Files (x86)/LLVM/lib/cmake/llvm
LLVM_INCLUDE_DIRS=C:/Program Files (x86)/LLVM/include
LLVM_DEFINITIONS=-DLLVM_BUILD_GLOBAL_ISEL -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -DUNICODE -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-- Configuring done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)